#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll mod=1e9+7;
ll s[102][202000],b[102][202000],n,k,ans;      //第几位  第几位是多少
int main(){
	cin>>n>>k;
	int d=sqrt(n);
	s[0][1]=1; //前缀和  因此只有赋值s[0][1];
	for(int i=1;i<=k;i++){
		for(int j=1;j<=d;j++) s[i-1][j]=(s[i-1][j-1]+s[i-1][j])%mod;         //预处理前i-1的和
		for(int j=1;j<=d;j++) b[i-1][j]=(b[i-1][j-1]+b[i-1][j])%mod;
		for(int j=1;j<=d;j++){
			b[i][j]=((n/j-n/(j+1))*s[i-1][j])%mod;
			s[i][j]=(s[i-1][d]+b[i-1][d]-b[i-1][j-1]+mod)%mod;
			if(j==n/j) b[i][j]=0;
		}
 }
 for(int i=1;i<=d;i++) ans=(ans+s[k][i]+b[k][i])%mod;
 cout<<ans<<'\n';
}

### Prompt

Create a solution in Cpp for 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<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll mod=1e9+7;
ll s[102][202000],b[102][202000],n,k,ans;      //第几位  第几位是多少
int main(){
	cin>>n>>k;
	int d=sqrt(n);
	s[0][1]=1; //前缀和  因此只有赋值s[0][1];
	for(int i=1;i<=k;i++){
		for(int j=1;j<=d;j++) s[i-1][j]=(s[i-1][j-1]+s[i-1][j])%mod;         //预处理前i-1的和
		for(int j=1;j<=d;j++) b[i-1][j]=(b[i-1][j-1]+b[i-1][j])%mod;
		for(int j=1;j<=d;j++){
			b[i][j]=((n/j-n/(j+1))*s[i-1][j])%mod;
			s[i][j]=(s[i-1][d]+b[i-1][d]-b[i-1][j-1]+mod)%mod;
			if(j==n/j) b[i][j]=0;
		}
 }
 for(int i=1;i<=d;i++) ans=(ans+s[k][i]+b[k][i])%mod;
 cout<<ans<<'\n';
}

```