Problem:
Score : 600 points

Problem Statement

Find the number of sequences of length K consisting of positive integers such that the product of any two adjacent elements is at most N, modulo 10^9+7.

Constraints

1\leq N\leq 10^9

1 2\leq K\leq 100 (fixed at 21:33 JST)

N and K are integers.

Input

Input is given from Standard Input in the following format:

N K

Output

Print the number of sequences, modulo 10^9+7.

Sample Input 1

3 2

Sample Output 1

5

(1,1), (1,2), (1,3), (2,1), and (3,1) satisfy the condition.

Sample Input 2

10 3

Sample Output 2

147

Sample Input 3

314159265 35

Sample Output 3

457397712

Solution in PyPy3 (7.3.0) (judge verdict: Accepted)

import sys
def MI(): return map(int,sys.stdin.readline().rstrip().split())

N,K = MI()
mod = 10**9+7

B = [i for i in range(int(N**.5)+1)]
C = [N//i for i in range(1,int(N**.5)+1)]
C.reverse()

if B[-1] == C[0]:
    del C[0]

D = B+C
A = [D[i+1]-D[i] for i in range(len(D)-1)]
a = len(A)
dp = [[0]*a for _ in range(K)]
for i in range(K):
    if i == 0:
        for j in range(a):
            if j == 0:
                dp[i][j] = A[j]
            else:
                dp[i][j] = dp[i][j-1] + A[j]
                dp[i][j] %= mod
    else:
        for j in range(a):
            if j == 0:
                dp[i][j] = dp[i-1][a-j-1]
            else:
                dp[i][j] = dp[i][j-1] + dp[i-1][a-j-1]*A[j]
                dp[i][j] %= mod

print(dp[-1][-1])