Періодичні точки#1820

Періодичні точки

20 секунд
256 мегабайтів
Дуже легка

Обчислення кількості фіксованих точок і, загалом, кількості періодичних орбіт у динамічній системі є питанням, яке становить інтерес для багатьох галузей досліджень. Однак динаміка може бути дуже складною навіть у, здавалося б, простих моделях. У цьому завданні вам належить обчислити кількість періодичних точок періоду кусково-лінійного відображення , що відображає дійсний інтервал у себе. Тобто, якщо дано відображення f : [0, m] \rightarrow [0, m], необхідно визначити кількість розв'язків рівняння f^n(x) = x для x \in [0, m], де f^n означає -кратне застосування функції , тобто

де позначає композицію відображень, (gh)(x) = g(h(x)).

На щастя, відображення у цій задачі мають такі властивості:

Рисунок 1: Графіки третього відображення з прикладу, f_3 (ліворуч), та його квадрата, f_3^2 (праворуч).

Оскільки періодичних точок може бути багато, виводьте відповідь за модулем числа.

Вхідні дані

Ввід складається з декількох тестових випадків, розділених одним порожнім рядком. Кожен тестовий випадок починається з рядка з цілим числом (1 \leq m \leq 80). Наступний рядок описує відображення : в ньому m+1 цілих чисел f(0), f(1), \ldots, f(m), кожне з яких знаходиться в діапазоні від до включно. Тест закінчується рядком з двома цілими числами через пробіл: (1 \leq n \leq 5\ 000) та модуль для відповіді (2 \leq \text{mod} \leq 10\ 000).

Ввід завершується рядком, що містить '0'.

Вихідні дані

Для кожного тесту виведіть кількість розв'язків рівняння f^n(x) = x на інтервалі за модулем . Якщо розв'язків нескінченно багато, виведіть 'Infinity'.

Приклади

Приклад 1

Loading
Loading