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, floor
N, K = map(int, input().split())
mod = 10**9+7

sn = floor(sqrt(N))
t = N//(sn + 1)

dp1 = [0] + [1]*sn + [0]
dp2 = [0] + [N//j - N//(j+1) for j in range(1, t+1)]
dp2 += [0]*(len(dp1) - len(dp2))
C = dp2[:]
for _ in range(K-1):
    d1 = [0]*(sn + 2)
    d2 = [0]*(sn + 2)
    
    sumd1 = 0
    for d in dp1[1:]:
        sumd1 = (sumd1 + d) % mod
    
    d1[1] = sumd1
    
    for i in range(1, sn+1):
        d2[i] = (d2[i] + dp1[i]) % mod
        d1[1] = (d1[1] + dp2[i]) % mod
        d1[i+1] = (d1[i+1] - dp2[i]) % mod
    
    for i in range(1, sn+2):
        dp1[i] = (d1[i] + dp1[i-1])%mod
        dp2[i] = (d2[i] + dp2[i-1])%mod
    dp1[-1] = 0
    
    dp2 = [d*c%mod for d, c in zip(dp2, C)]
ans = 0
for d in dp1:
   ans = (ans + d)%mod
for d in dp2:
    ans = (ans + d)%mod
print(ans)