def fibonacci_mod_m_period(m):
    a, b = 0, 1
    period = 0
    values = []

    while True:
        values.append(a % m)
        a, b = b, (a + b) % m
        period += 1

        if a == 0 and b == 1:
            break

    return period, values[:-2]  # Az utolsó két elemet eltávolítjuk, mert azok a periódus kezdetét jelölik

def main():
    try:
        m = int(input("Kérem, adja meg az m értékét (m>1): "))
        if m <= 1:
            raise ValueError("Az m értékének nagyobbnak kell lennie, mint 1.")
        
        period, values = fibonacci_mod_m_period(m)

        print(f"A Fibonacci-típusú sorozat periódusa {period} hosszú.")
        print("A periódus elemei:", values)

    except ValueError as ve:
        print(f"Hiba: {ve}")
    except Exception as e:
        print(f"Hiba történt: {e}")

if __name__ == "__main__":
    main()
