거듭제곱 탑
시간 제한2초메모리 제한512 MB
양의 정수 목록이 주어질 때, 값이 매우 커질 수 있는 거듭제곱 탑을 주어진 M으로 나눈 나머지를 각각 구한다.
문제
비어 있지 않은 양의 정수 목록 이 주어진다. 이 목록에 대응하는 거듭제곱 탑은 다음 수이다.
지수는 위쪽부터 차례로 계산한다. 즉 이다.
거듭제곱 탑은 목록이 작은 정수 몇 개로만 이루어져 있어도 매우 큰 수가 된다. 목록 의 거듭제곱 탑은 이고, 목록 의 거듭제곱 탑은 로 십진수 358자리이다.
거듭제곱 탑을 주어진 양의 정수 으로 나눈 나머지를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 양의 정수 와 이 주어진다. 이어지는 개의 줄에는 각각 양의 정수 과 그 뒤로 개의 양의 정수 이 주어진다. 한 줄에서 이웃한 두 수 사이에는 공백이 정확히 하나 있다.
출력
개의 줄을 출력한다. 번째 줄에는 번째 목록의 거듭제곱 탑을 으로 나눈 나머지를 출력한다.
제한
- 모든 목록의 길이 을 더한 값은 이하이다.
힌트
이면 각 거듭제곱 탑의 마지막 자리 숫자를 구하는 셈이다. 예제 입력에 있는 목록은 대부분 거듭제곱 탑이 32비트나 64비트 정수에 담기지 않을 만큼 크다.