만드는 중입니다

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

거듭제곱 수열의 합

시간 제한1초메모리 제한1024 MB

요약
c와 M이 주어질 때, 각 m에 대해 a_m + a_{m+1} = c+1을 만족하는 a_1의 합 S(m)을 10^9+7로 나눈 나머지로 M개 구합니다.
난이도

어려움10점 중 9점

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

문제

양의 정수로 이루어진 무한 수열 a1,a2,a3,⋯a_1, a_2, a_3, \cdots이 다음 조건을 만족한다. cc는 고정된 양의 정수이고 c≥2c \geq 2이다.

임의의 양의 정수 nn에 대하여,

  • ana_n이 cc의 배수이면 an+1=anca_{n+1} = \frac{a_n}{c}이다.
  • ana_n이 cc의 배수가 아니면 an+1=cana_{n+1} = c^{a_n}이다.

양의 정수 mm에 대하여, am+am+1=c+1a_m + a_{m+1} = c+1이 성립하도록 하는 모든 양의 정수 a1a_1의 합을 S(m)S(m)이라고 하자. 양의 정수 MM이 주어졌을 때, S(1),S(2),⋯ ,S(M)S(1), S(2), \cdots, S(M)의 값을 각각 구하여라. 값이 매우 커질 수 있으므로 1 000 000 0071\,000\,000\,007로 나눈 나머지를 출력한다.

입력

첫째 줄에 두 정수 cc와 MM이 공백을 사이에 두고 주어진다.

출력

MM개의 줄에 걸쳐 정답을 출력한다. ii번째 줄 (1≤i≤M1 \leq i \leq M)에는 S(i)S(i)를 1 000 000 0071\,000\,000\,007로 나눈 나머지를 음이 아닌 정수로 출력해야 한다. 1 000 000 0071\,000\,000\,007은 소수이다.

제한

  • 2≤c≤1092 \leq c \leq 10^9
  • 1≤M≤100 0001 \leq M \leq 100\,000
  • 주어지는 모든 수는 정수이다.

예제2

  1. 예제 1

    입력
    2 6
    
    예상 출력
    3
    7
    15
    34
    72
    153
    
  2. 예제 2

    입력
    142857 2
    
    예상 출력
    142858
    408265167