아직 제출이 없습니다시간 제한1초메모리 제한512 MB

문제

앨런은 정육면체 모양 벽돌을 쌓아 탑 만드는 것을 좋아한다. 탑은 정사각형 밑면을 가진 여러 개의 직육면체로 이루어지며, 모든 직육면체의 높이는 h=1h = 1로 같다. 앨런은 직육면체를 하나씩 위로 쌓아 올린다.

그림 1: 앨런이 a2=2a_2 = 2로 정했을 때 벽돌 3개로 이루어진 탑.

최근 수학 시간에 부피의 개념을 배운 앨런은 자신이 만든 탑의 부피를 구하고 싶어졌다. 위에서 아래로 내려가며 각 직육면체 밑면의 한 변의 길이는 다음 규칙으로 정해진다.

  1. 첫 번째 정사각형의 변의 길이 a1a_111이다.
  2. 두 번째 정사각형의 변의 길이 a2a_2는 앨런이 직접 정한다.
  3. n>2n > 2인 경우, 길이 ana_nan=2a2an1an2a_n = 2 a_2 a_{n-1} - a_{n-2}로 계산한다. 왜 이런 식을 골랐는지는 묻지 말자. 그는 그저 별난 친구일 뿐이다.

예를 들어 앨런이 a2=2a_2 = 2로 정하면 a3=8a1=7a_3 = 8 - a_1 = 7이다(그림 1 참고). 앨런이 a2=1a_2 = 1로 정하면 모든 nNn \in \mathbb{N}에 대해 an=1a_n = 1이 성립한다(그림 2 참고).

그림 2: 앨런이 a2=1a_2 = 1로 정했을 때 벽돌 4개로 이루어진 탑.

이제 앨런은 연속한 NN개의 벽돌로 이루어진 탑의 부피를 계산하고 싶다. 각 직육면체의 부피는 (밑면의 넓이) ×\times (높이) =an2= a_n^2이므로, 탑 전체의 부피는 n=1Nan2\sum_{n=1}^{N} a_n^2이다. 이 값은 매우 커질 수 있으므로, 주어진 자연수 mm으로 나눈 나머지를 구하면 된다.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 첫째 줄에는 테스트 케이스의 개수 tt (t105t \le 10^5)가 주어진다. 이어서 tt개의 테스트 케이스가 주어진다. 각 테스트 케이스는 한 줄에 공백 하나로 구분된 세 정수 a2a_2, NN, mm (1a2,m1091 \le a_2, m \le 10^9, 2N1092 \le N \le 10^9)으로 주어진다. 여기서 a2a_2는 2단계에서 앨런이 정한 두 번째 정사각형의 변의 길이이고, NN은 앨런이 쌓은 벽돌의 개수이다.

출력

각 테스트 케이스 (a2,N,m)(a_2, N, m)에 대해, 규칙 (1)–(3)에 따라 쌓은 NN개의 벽돌로 이루어진 탑의 부피 n=1Nan2\sum_{n=1}^{N} a_n^2mm으로 나눈 나머지를 한 줄에 하나씩 출력한다.