Алан любить будувати вежі з будівельних цеглин. Його вежі складаються з прямокутних паралелепіпедів з квадратною основою, причому всі вони мають однакову висоту h = 1. Алан розміщує ці паралелепіпеди один на одному:

Рисунок 1: Вежа з трьох цеглин, коли Алан обирає a_2 = 2.
Нещодавно на уроці математики Алан дізнався про об'єм, і тепер він хоче обчислити об'єм своєї вежі. Довжини основ паралелепіпедів (зверху вниз) Алан визначає так:
Довжина a_1 першого квадрата дорівнює одиниці.
Потім Алан обирає довжину a_2 другого квадрата.
Далі Алан обчислює довжину a_n (n > 2) за формулою 2a_2 a_{n-1} - a_{n-2}. Не питайте, чому він обрав таку формулу; просто скажімо, що він дуже своєрідний молодий хлопець.

Наприклад, якщо Алан обирає a_2 = 2, то a_3 = 8 - a_1 = 7; див. Рисунок 1. Якщо Алан обирає a_2 = 1, то a_n = 1 для всіх n \in \mathbb{N}; див. Рисунок 2.
Тепер Алан цікавиться, чи може він обчислити об'єм вежі з послідовних будівельних цеглин. Допоможіть Алану і напишіть програму, яка обчислює цей об'єм. Оскільки він може бути досить великим, достатньо обчислити відповідь за модулем заданого натурального числа .
Вхід містить кілька тестових випадків. Перша строка містить число (t \le 10^5), що позначає кількість тестових випадків. Потім слідують тестових випадків. Кожен з них подається в окремій строкі, що містить три цілі числа a_2, , (1 \le a_2, m \le 10^9, 2 \le N \le 10^9), розділені одним пробілом, де a_2 позначає фіксовану довжину другого квадрата на кроці , а позначає кількість цеглин, побудованих Аланом.
Для кожного тестового випадку (a_2, , ) обчисліть об'єм вежі з послідовних цеглин, побудованих Аланом відповідно до кроків (-), і виведіть його залишок за модулем .

Рисунок 2: Вежа з чотирьох цеглин, коли Алан обирає a_2 = 1.
Приклад 1