#include <stdio.h>

long long f[200010],sumf[200010];
const long long Mod=1e9+7;

int main()
{
    int n,k;scanf("%d%d",&n,&k);
    int mid=1;while (mid*mid<=n) ++mid;--mid;
    for (int i=1;i<=k;++i)
    for (int j=1;j<=mid+n/mid;++j){

        if (j==mid+n/mid){
            sumf[0]=0;
            for (int k=1;k<=mid+n/mid-1;++k)
                sumf[k]=(sumf[k-1]+f[k]) % Mod;
            continue;
        }
        if (i==1)
            f[j]=1;
        else
            f[j] = sumf[mid+n/mid-j];
        if (j>mid){
            long long tmp=n/(mid+n/mid-j);
            tmp-=n/(mid+n/mid-j+1);
            tmp%=Mod;f[j]*=tmp;
        }
        f[j]%=Mod;
        //printf("%d %d %lld\n",i,j,f[j]);
    }

    printf("%lld\n",sumf[mid+n/mid-1]);


}

### Prompt

Your task is to create a cpp solution to the following 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

### Response

```cpp
#include <stdio.h>

long long f[200010],sumf[200010];
const long long Mod=1e9+7;

int main()
{
    int n,k;scanf("%d%d",&n,&k);
    int mid=1;while (mid*mid<=n) ++mid;--mid;
    for (int i=1;i<=k;++i)
    for (int j=1;j<=mid+n/mid;++j){

        if (j==mid+n/mid){
            sumf[0]=0;
            for (int k=1;k<=mid+n/mid-1;++k)
                sumf[k]=(sumf[k-1]+f[k]) % Mod;
            continue;
        }
        if (i==1)
            f[j]=1;
        else
            f[j] = sumf[mid+n/mid-j];
        if (j>mid){
            long long tmp=n/(mid+n/mid-j);
            tmp-=n/(mid+n/mid-j+1);
            tmp%=Mod;f[j]*=tmp;
        }
        f[j]%=Mod;
        //printf("%d %d %lld\n",i,j,f[j]);
    }

    printf("%lld\n",sumf[mid+n/mid-1]);


}

```