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
inpl = lambda: list(map(int,input().split()))
MOD = 10**9 + 7
N, K = inpl()
sqN = int(sqrt(N))
bound = [0]*(sqN+2)
for i in range(1,sqN+2):
    bound[i] = N//i
bound[sqN+1] = sqN
group_size = [0]*(sqN+1)
for i in range(1,sqN+1):
    group_size[i] = bound[i]-bound[i+1]

cur_small = [1] * (sqN+1)
cur_small[0] = 0
cur_large = [ s for s in group_size ]
for k in range(K-1):
    prev_small = cur_small
    cur_small = [0] * (sqN+2)
    prev_large = cur_large
    cur_small = [0] * (sqN+2)
    cur_small[sqN+1] = sum(prev_small[:sqN+1])
    for n in range(sqN,0,-1):
        cur_small[n] = (prev_large[n] + cur_small[n+1]) % MOD
    acc_prev_small = 0
    for n in range(1,sqN+1):
        acc_prev_small += prev_small[n]
        cur_large[n] = acc_prev_small*group_size[n] % MOD

print((sum(cur_small[:sqN+1])+sum(cur_large[:sqN+1]))%MOD)