만드는 중입니다

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

f(k, n)

시간 제한2초메모리 제한512 MB

요약
주어진 p×p 행렬 T에 대해, 모든 i, j에서 f(x+i, y+j)가 T[i][j]와 같아지는 (x, y) 쌍의 개수를 구합니다.
난이도

보통10점 중 7점

유형
수학, 행렬, 구현
정답자
아직 제출이 없습니다

문제

1 이상의 정수 nn에 대하여 수열 fib(n)fib(n)은 다음과 같이 정의되어 있다.

피보나치 수열은 너무 잘 알려져 있으므로, 영훈이는 1 이상의 정수 kk, nn에 대한 함수 f(k,n)f(k, n)을 다음과 같이 정의했다.

영훈이는 임의의 p×pp \times p 행렬 TT가 주어졌을 때, 다음 조건을 만족하는 순서쌍 (x,y)(x, y)의 개수가 궁금해졌다.

  • ti−1,j−1t_{i-1, j-1}: 행렬 TT의 ii번째 행, jj번째 열의 원소
  • f(x+i,y+j)=ti,jf(x+i, y+j) = t_{i,j} (모든 0≤i,j<p0 \le i, j < p에 대하여)
  • 1≤x,y≤n−p+11 \le x, y \le n - p + 1

택희: "...이 문제는 수학 지식을 너무 많이 요구하니 출제하지 말자."

영훈: "아냐, 잘 봐. 이게 무슨 뜻이냐면.."

택희: "??"

영훈: "??"

택희: "괜찮은 문제였구나.."

입력

첫째 줄에 nn, pp가 주어진다. (1≤n≤1091 \le n \le 10^9, 1≤p≤10001 \le p \le 1000)

둘째 줄부터 pp개의 줄에 걸쳐 pp개의 정수가 주어진다. 이 중 ii번째 줄 jj번째 정수는 ti−1,j−1t_{i-1, j-1}을 의미하며, 모두 절댓값이 101810^{18} 이하인 정수이다.

출력

문제의 정답을 출력한다.

예제3

  1. 예제 1

    입력
    3 2
    1 1
    0 1
    
    예상 출력
    2
    
  2. 예제 2

    입력
    7 3
    1 1 2
    0 1 1
    1 0 1
    
    예상 출력
    5
    
  3. 예제 3

    입력
    1000000000 1
    1
    
    예상 출력
    2999999997