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 CPP):

Solution:
#include <bits/stdc++.h>
#define ll long long

using namespace std;

const int mod=1e9+7;
int n,k,small[64000]={0},big[64000]={0},sum[64000];

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0),cout.tie(0);

    int i,j,cnt=0;
    cin>>n>>k;
    for(i=n;i>0;)
    {
        j=n/(n/i+1);
        small[cnt++]=i-j;
        i=j;
    }

    for(i=0;i<cnt;i++)
        big[i]=small[i];
    for(i=1;i<k;i++)
    {
        for(sum[0]=big[cnt-1],j=1;j<cnt;j++)
            sum[j]=(sum[j-1]+big[cnt-1-j])%mod;

        for(j=0;j<cnt;j++)
        {
            big[j]=(sum[j]*1LL*small[j])%mod;
            //cout<<sum[j]<<'/'<<big[j]<<' ';
        }
    }
    int ans=0;
    for(i=0;i<cnt;i++)
        ans=(ans+big[i])%mod;
    cout<<ans<<endl;
    /*for(i=0;i<cnt;i++)
        cout<<sum[i]<<'/'<<big[i]<<' ';
    cout<<endl;*/
    return 0;
}