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

де позначає композицію відображень, (gh)(x) = g(h(x)).
На щастя, відображення у цій задачі мають такі властивості:
— це додатне ціле число, і для кожного цілого k \in \{0, 1, \ldots, m\} — ціле число в ; тобто f(k) \in \{0, 1, \ldots, m\}.
Для кожного k \in \{0, 1, \ldots, m-1\} відображення лінійне на інтервалі [k, k+1]. Це означає, що для будь-якого x \in [k, k+1] виконується f(x) = (k + 1 - x) f(k) + (x - k) f(k+1); тобто його графік на [k, k+1] — відрізок прямої.

Рисунок 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