#include <bits/stdc++.h>
#define ll long long
#define rep(i,n) for(ll (i)=0;(i)<(n);(i)++)
using namespace std;

int main() {
    ll mod=1e9+7;
    ll n,k;
    cin>>n>>k;
    ll itr=0;
    vector<ll> num;
    for(ll i=1;i<=n;){
        ll j=n/i;
        if(i<=j){
            num.push_back(1);
            i++;
        }else{
            num.push_back(n/j-i+1);
            i=n/j+1;
        }
        itr++;
    }
    vector<vector<ll>> dp(k+1,vector<ll>(itr));
    dp[0][0]=1;
    for(ll i=0;i<k;i++){
        vector<ll> sdp(itr+2);
        for(ll j=0;j<=itr;j++){
            sdp[j+1]=sdp[j]+dp[i][j];
            sdp[j+1]=(sdp[j+1]+mod)%mod;
        }
        for(ll j=0;j<itr;j++){
            dp[i+1][j]=sdp[itr-j]*num[j];
            dp[i+1][j]=(dp[i+1][j]+mod)%mod;
        }
    }
    ll sum=0;
    for(ll i:dp[k])sum+=i;
    cout<<(sum+mod)%mod<<endl;
}
### Prompt

Please provide a Cpp coded solution to the problem described below:

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 <bits/stdc++.h>
#define ll long long
#define rep(i,n) for(ll (i)=0;(i)<(n);(i)++)
using namespace std;

int main() {
    ll mod=1e9+7;
    ll n,k;
    cin>>n>>k;
    ll itr=0;
    vector<ll> num;
    for(ll i=1;i<=n;){
        ll j=n/i;
        if(i<=j){
            num.push_back(1);
            i++;
        }else{
            num.push_back(n/j-i+1);
            i=n/j+1;
        }
        itr++;
    }
    vector<vector<ll>> dp(k+1,vector<ll>(itr));
    dp[0][0]=1;
    for(ll i=0;i<k;i++){
        vector<ll> sdp(itr+2);
        for(ll j=0;j<=itr;j++){
            sdp[j+1]=sdp[j]+dp[i][j];
            sdp[j+1]=(sdp[j+1]+mod)%mod;
        }
        for(ll j=0;j<itr;j++){
            dp[i+1][j]=sdp[itr-j]*num[j];
            dp[i+1][j]=(dp[i+1][j]+mod)%mod;
        }
    }
    ll sum=0;
    for(ll i:dp[k])sum+=i;
    cout<<(sum+mod)%mod<<endl;
}
```