만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

피보나치 수의 거듭제곱 합

시간 제한5초메모리 제한256 MB

요약
각 테스트마다 처음 n개의 피보나치 수에 대한 k제곱의 합을 10^9+23으로 나눈 나머지로 구합니다.
난이도

어려움10점 중 9점

유형
수학, 정수론, 조합론
정답자
아직 제출이 없습니다

문제

피보나치 수는 가장 잘 알려지고 많이 연구된 수열 가운데 하나이다. 이 수들에서 나타나는 규칙은 중세 건축이나 살아 있는 자연 등 뜻밖의 분야에서도 발견된다. 한 연구자가 새로운 규칙을 찾았다고 생각하는데, 가설을 검증하려면 도움이 필요하다.

피보나치 수는 다음 점화식으로 정의한다: F1=1F_1=1, F2=1F_2=1, Fi=Fi−1+Fi−2F_i=F_{i-1}+F_{i-2}.

연구자를 도와 처음 nn개 피보나치 수의 kk제곱 합 ∑i=1nFik\sum_{i=1}^{n} F_i^k를 109+2310^9+23으로 나눈 나머지를 구하라.

입력

첫 줄에 테스트의 개수 tt (1≤t≤1001 \le t \le 100)가 주어진다. 이어지는 tt개 줄에는 각각 테스트가 하나씩 주어지며, 정수 nn, kk (1≤n≤1091 \le n \le 10^9, 1≤k≤10181 \le k \le 10^{18})가 주어진다. nn은 피보나치 수의 개수, kk는 거듭제곱 지수이다.

출력

각 테스트마다 처음 nn개 피보나치 수의 kk제곱 합을 109+2310^9+23으로 나눈 나머지를 한 줄에 출력한다.

예제1

  1. 예제 1

    입력
    3
    1 1
    3 2
    1000 10
    
    예상 출력
    1
    6
    107235489