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:
from math import sqrt

N,K=map(int,input().split())
mod=10**9+7

m=int(sqrt(N))
if N//(m+1)==m:
    dp=[[[0  for i in range(0,2)] for j in range(0,int(sqrt(N)))] for k in range(0,K+1)]

    for i in range(0,int(sqrt(N))):
        dp[1][i][1]=1
        dp[1][i][0]=(N//(i+1)-N//(i+2))

    for k in range(2,K+1):
        s=0
        for i in range(0,int(sqrt(N))):
            s=(s+dp[k-1][i][1])%mod
            dp[k][i][0]=(s*(N//(i+1)-N//(i+2)))%mod

        for j in range(0,int(sqrt(N))):
            i=int(sqrt(N))-j-1
            s=(s+dp[k-1][i][0])%mod
            dp[k][i][1]=s

    ans=sum(dp[K][i][0]+dp[k][i][1] for i in range(0,int(sqrt(N))))%mod
    print(ans)

else:
    dp0=[[0 for i in range(0,int(sqrt(N))-1)] for k in range(0,K+1)]
    dp1=[[0 for i in range(0,int(sqrt(N)))] for k in range(0,K+1)]

    for i in range(0,int(sqrt(N))-1):
        dp0[1][i]=(N//(i+1)-N//(i+2))
        dp1[1][i]=1

    dp1[1][-1]=1

    for k in range(2,K+1):
        s=0
        for i in range(0,int(sqrt(N))-1):
            s=(s+dp1[k-1][i])%mod
            dp0[k][i]=(s*(N//(i+1)-N//(i+2)))%mod

        s=(s+dp1[k-1][int(sqrt(N))-1])%mod
        dp1[k][int(sqrt(N))-1]=s%mod
        for j in range(1,int(sqrt(N))):
            i=int(sqrt(N))-j-1
            s=(s+dp0[k-1][i])%mod
            dp1[k][i]=s

    ans=sum(dp0[K][i]+dp1[K][i] for i in range(0,int(sqrt(N))-1))%mod
    ans=(ans+dp1[K][-1])%mod

    print(ans)