피보나치 수

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

문제

피보나치 수열은 F0=0F_0 = 0, F1=1F_1 = 1이고, n2n \ge 2일 때 Fn=Fn1+Fn2F_n = F_{n-1} + F_{n-2}로 정의된다. 예를 들어 수열의 처음 열 개 항은 다음과 같다.

0,1,1,2,3,5,8,13,21,34,0, 1, 1, 2, 3, 5, 8, 13, 21, 34, \dots

피보나치 수는 행렬의 거듭제곱으로도 표현할 수 있다.

[Fn+1FnFnFn1]=[1110]n\begin{bmatrix} F_{n+1} & F_n \\ F_n & F_{n-1} \end{bmatrix} = \begin{bmatrix} 1 & 1 \\ 1 & 0 \end{bmatrix}^n

정수 nn이 주어질 때 FnF_n의 마지막 네 자리를 구하라.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스는 정수 nn 하나가 적힌 한 줄이며, 0n1,000,000,0000 \le n \le 1{,}000{,}000{,}000을 만족한다. 입력의 끝은 1-1만 적힌 한 줄로 표시되며, 이 줄은 처리 대상이 아니다.

출력

각 테스트 케이스마다 FnF_n의 마지막 네 자리를 한 줄에 출력한다. 네 자리가 모두 0이면 0을 출력하고, 그렇지 않으면 앞에 오는 0은 생략한다. 즉, Fnmod10000F_n \bmod 10000을 출력하면 된다.