Problem: 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.

Examples

Input

3 2


Output

5


Input

10 3


Output

147


Input

314159265 35


Output

457397712

Solution (in PYTHON3):

Solution:
N,K=map(int,input().split())

mod=10**9+7

ans=0
L=[[0,0]]
for i in range(1,N+1):
    if i*i==N:
        L.append([i,i])
        break
    elif i*i>N:
        break
    else:
        L.append([N//i,i])
R=[]
for i in range(len(L)):
    if L[-1-i][0]==L[-1-i][1]:
        continue
    else:
        R.append([L[-1-i][1],L[-1-i][0]])
Arr=L+R
#print(Arr)

for i in range(1,len(Arr)):
    ans+=pow(Arr[i][0],K-1,mod)*(Arr[i][1]-Arr[i-1][1])
#print(ans%mod)
DP=[[1 for i in range(len(Arr)-1)]for j in range(K)]
for j in range(len(Arr)-1):
    DP[0][j]=(Arr[j+1][1]-Arr[j][1])
#print(DP)
for i in range(1,K):
    Rui=[DP[i-1][0]]
    for j in range(1,len(Arr)-1):
        Rui.append(Rui[-1]+DP[i-1][j])
    #print(Rui)
    for j in range(len(Rui)):
        DP[i][j]=(Rui[-1-j]*(Arr[j+1][1]-Arr[j][1]))%mod
print(sum(DP[-1])%mod)