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

그림 1: 앨런이 a2=2로 정했을 때 벽돌 3개로 이루어진 탑.
최근 수학 시간에 부피의 개념을 배운 앨런은 자신이 만든 탑의 부피를 구하고 싶어졌다. 위에서 아래로 내려가며 각 직육면체 밑면의 한 변의 길이는 다음 규칙으로 정해진다.
예를 들어 앨런이 a2=2로 정하면 a3=8−a1=7이다(그림 1 참고). 앨런이 a2=1로 정하면 모든 n∈N에 대해 an=1이 성립한다(그림 2 참고).

그림 2: 앨런이 a2=1로 정했을 때 벽돌 4개로 이루어진 탑.
이제 앨런은 연속한 N개의 벽돌로 이루어진 탑의 부피를 계산하고 싶다. 각 직육면체의 부피는 (밑면의 넓이) × (높이) =an2이므로, 탑 전체의 부피는 ∑n=1Nan2이다. 이 값은 매우 커질 수 있으므로, 주어진 자연수 m으로 나눈 나머지를 구하면 된다.
입력은 여러 개의 테스트 케이스로 이루어진다. 첫째 줄에는 테스트 케이스의 개수 t (t≤105)가 주어진다. 이어서 t개의 테스트 케이스가 주어진다. 각 테스트 케이스는 한 줄에 공백 하나로 구분된 세 정수 a2, N, m (1≤a2,m≤109, 2≤N≤109)으로 주어진다. 여기서 a2는 2단계에서 앨런이 정한 두 번째 정사각형의 변의 길이이고, N은 앨런이 쌓은 벽돌의 개수이다.
각 테스트 케이스 (a2,N,m)에 대해, 규칙 (1)–(3)에 따라 쌓은 N개의 벽돌로 이루어진 탑의 부피 ∑n=1Nan2을 m으로 나눈 나머지를 한 줄에 하나씩 출력한다.