#include<iostream>
using namespace std;
int k;
typedef long long ll;
ll n;
const ll mod=1e9+7,sz=2<<17;
int l[sz],r[sz];
ll dp[101][sz];
int main()
{
    cin>>n>>k;
    int id=0;
    for(int i=1;i*i<=n;i++)l[id]=r[id]=i,id++;
    int T=l[id-1];
    if(T*T==n)T--;
    for(;T>=1;T--)
    {
        l[id]=r[id-1]+1;
        r[id++]=n/T;
    }
    for(int i=0;i<id;i++)dp[0][i]=r[i]-l[i]+1;
    for(int i=0;i<k-1;i++)
    {
        for(int j=1;j<id;j++)dp[i][j]=(dp[i][j]+dp[i][j-1])%mod;
        for(int j=0;j<id;j++)dp[i+1][j]=(dp[i+1][j]+dp[i][id-j-1]*(r[j]-l[j]+1)%mod)%mod;
    }

    ll ans=0;
    for(int j=0;j<id;j++)ans=(ans+dp[k-1][j])%mod;
    cout<<ans<<endl;
}
### Prompt

In CPP, your task is to solve 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<iostream>
using namespace std;
int k;
typedef long long ll;
ll n;
const ll mod=1e9+7,sz=2<<17;
int l[sz],r[sz];
ll dp[101][sz];
int main()
{
    cin>>n>>k;
    int id=0;
    for(int i=1;i*i<=n;i++)l[id]=r[id]=i,id++;
    int T=l[id-1];
    if(T*T==n)T--;
    for(;T>=1;T--)
    {
        l[id]=r[id-1]+1;
        r[id++]=n/T;
    }
    for(int i=0;i<id;i++)dp[0][i]=r[i]-l[i]+1;
    for(int i=0;i<k-1;i++)
    {
        for(int j=1;j<id;j++)dp[i][j]=(dp[i][j]+dp[i][j-1])%mod;
        for(int j=0;j<id;j++)dp[i+1][j]=(dp[i+1][j]+dp[i][id-j-1]*(r[j]-l[j]+1)%mod)%mod;
    }

    ll ans=0;
    for(int j=0;j<id;j++)ans=(ans+dp[k-1][j])%mod;
    cout<<ans<<endl;
}
```