Problem: Mashmokh's boss, Bimokh, didn't like Mashmokh. So he fired him. Mashmokh decided to go to university and participate in ACM instead of finding a new job. He wants to become a member of Bamokh's team. In order to join he was given some programming tasks and one week to solve them. Mashmokh is not a very experienced programmer. Actually he is not a programmer at all. So he wasn't able to solve them. That's why he asked you to help him with these tasks. One of these tasks is the following.

A sequence of l integers b1, b2, ..., bl (1 ≤ b1 ≤ b2 ≤ ... ≤ bl ≤ n) is called good if each number divides (without a remainder) by the next number in the sequence. More formally <image> for all i (1 ≤ i ≤ l - 1).

Given n and k find the number of good sequences of length k. As the answer can be rather large print it modulo 1000000007 (109 + 7).

Input

The first line of input contains two space-separated integers n, k (1 ≤ n, k ≤ 2000).

Output

Output a single integer — the number of good sequences of length k modulo 1000000007 (109 + 7).

Examples

Input

3 2


Output

5


Input

6 4


Output

39


Input

2 1


Output

2

Note

In the first sample the good sequences are: [1, 1], [2, 2], [3, 3], [1, 2], [1, 3].

Solution (in PYTHON3):

Solution:
mod = 10**9+7
import math

def sieve(n): 
    prime = [True for i in range(n+1)] 
    p = 2
    while (p * p <= n): 
        if (prime[p] == True): 
            for i in range(p * p, n+1, p): 
                prime[i] = False
        p += 1
    return prime

def factor(n):
    # limit = int(math.sqrt(n)+1)
    fac={i:0 for i in range(n+1)}
    i=2
    while(n>1):
        if not prime[i]:
            i+=1
            continue
        if n%i==0:
            fac[i]+=1
            n=n//i
        else:
            i+=1
        # print(n,' ')
    return {i:fac[i] for i in fac if fac[i]!=0}





def ncr(n, r, p=mod):
    num = den = 1
    for i in range(r):
        num = (num * (n - i)) % p
        den = (den * (i + 1)) % p
    return (num * pow(den,
                      p - 2, p)) % p

n,k = list(map(int,input().split()))

prime = sieve(n)
# print([i for i in range(len(prime)) if prime[i]])
# print(factor(5))

final = 0
for num in range(2,n+1):
    fac = factor(num)
    # print('n = ',num)
    ans = 1
    for a in fac:
        part = ncr(fac[a]+k-1,k-1)
        ans = (ans * part)%mod
        # print(part,a,fac[a])
    final = (ans+final)%mod
print((final+1)%mod)