Капітан Очевидність і Людина-Кролик: загадка#6775

Капітан Очевидність і Людина-Кролик: загадка

1 секунда
256 мегабайтів
Легка

"Це ти, Капітане Очевидність!" – закричав Людина-Кролик – "ти прийшов сюди, щоб зірвати мої плани!"

"Так, це я." – сказав Капітан Очевидність.

"Але... як ти дізнався, що я буду тут, у секретному притулку під номером 625?! Ти розгадав мій загадковий код?"

"Так. Три дні тому твої підказки вказували на місце 5, наступного дня — на 25, а вчора — на 125 — усе це ступені 5. А минулого року така ж закономірність була для числа 13. Здається, всі твої загадки стосуються певних числових послідовностей, Людино-Кролик."

"Це ще не кінець! Я навчуся... арифметики!" – закричав Людина-Кролик, коли його відтягували – "Ти ніколи не знатимеш, чого очікувати... Ой! Тільки не мої вуха!"

"Можливо, але зараз тебе спіймали." – з гордістю додав Капітан.

На жаль, Людина-Кролик справді засвоїв більш просунуту арифметику. Щоб це зрозуміти, визначимо послідовність F_n (не зовсім як Фібоначчі):

F_1 = 1,

F_2 = 2,

F_n = F_{n-1} + F_{n-2} для n \ge 3.

Людина-Кролик об'єднав усі свої старі головоломки в одну нову суперзагадку. У -й день він вказує на місце , яке визначається так:

p(i) = a_1 \cdot F_1^i + a_2 \cdot F_2^i + ... + a_k \cdot F_k^i.

Число та цілі коефіцієнти a_1, \ldots, a_k є фіксованими. Капітан Очевидність дізнався , але не знає коефіцієнтів. Знаючи p(1), p(2), \ldots, p(k), допоможіть йому визначити p(k+1). Щоб уникнути великих чисел, проведіть всі обчислення за модулем заданого простого числа . Вважайте, що F_1, F_2, \ldots, F_n попарно різні за модулем і для вхідних даних завжди існує єдиний розв'язок.

Вхідні дані

Перший рядок містить число тестів . Далі наведено описи тестів:

Перший рядок кожного тесту містить два цілі числа та , 1 \le k \le 4000, 3 \le M \le 10^9. Другий рядок містить цілих чисел — значення p(1), p(2), \ldots, p(k) за модулем .

Вихідні дані

Виведіть відповіді для усіх тестів у порядку їх подання. Для кожного тесту виведіть у окремому рядку одне ціле число: значення p(k+1) за модулем .

Пояснення: перша послідовність — це просто 5^i , отже наступний елемент 5^5 \mod 619 = 30. Друга послідовність — 2 \cdot 1^i + 3^i \mod 101.

Приклади

Приклад 1

Loading
Loading