탑
시간 제한1초메모리 제한512 MB
a1=1, an=2*a2*a(n-1)-a(n-2)로 정의된 수열의 처음 N개 항 제곱합을 각 테스트마다 m으로 나눈 나머지로 구한다.
문제
앨런은 정육면체 모양 벽돌을 쌓아 탑 만드는 것을 좋아한다. 탑은 정사각형 밑면을 가진 여러 개의 직육면체로 이루어지며, 모든 직육면체의 높이는 로 같다. 앨런은 직육면체를 하나씩 위로 쌓아 올린다.

그림 1: 앨런이 로 정했을 때 벽돌 3개로 이루어진 탑.
최근 수학 시간에 부피의 개념을 배운 앨런은 자신이 만든 탑의 부피를 구하고 싶어졌다. 위에서 아래로 내려가며 각 직육면체 밑면의 한 변의 길이는 다음 규칙으로 정해진다.
- 첫 번째 정사각형의 변의 길이 은 이다.
- 두 번째 정사각형의 변의 길이 는 앨런이 직접 정한다.
- 인 경우, 길이 은 로 계산한다. 왜 이런 식을 골랐는지는 묻지 말자. 그는 그저 별난 친구일 뿐이다.
예를 들어 앨런이 로 정하면 이다(그림 1 참고). 앨런이 로 정하면 모든 에 대해 이 성립한다(그림 2 참고).

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