#include<bits/stdc++.h>
#define debug(x) cerr<<#x<<" = "<<x<<endl
using namespace std;
const long long mod=1e9+7;
long long dp[105][70005];
int X[70005],Y[70005],cnt;
int main(){
	int n,m;
	scanf("%d %d",&n,&m);
	int x=1,y,t;
	while(x<=n){
		t=n/x; y=n/t;
//		printf("%d ~ %d\n",x,y);
		X[++cnt]=x, Y[cnt]=y;
		x=y+1;
	}
	for(int i=1; i<=cnt; i++) dp[1][i]=Y[i];
	for(int i=2; i<=m; i++)
		for(int j=1; j<=cnt; j++){
			dp[i][j]=((dp[i-1][cnt-j+1]*(Y[j]-X[j]+1))%mod+dp[i][j-1])%mod;
		}
	printf("%lld\n",dp[m][cnt]);
	return 0;
}
### Prompt

Construct a CPP code solution to the problem outlined:

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 debug(x) cerr<<#x<<" = "<<x<<endl
using namespace std;
const long long mod=1e9+7;
long long dp[105][70005];
int X[70005],Y[70005],cnt;
int main(){
	int n,m;
	scanf("%d %d",&n,&m);
	int x=1,y,t;
	while(x<=n){
		t=n/x; y=n/t;
//		printf("%d ~ %d\n",x,y);
		X[++cnt]=x, Y[cnt]=y;
		x=y+1;
	}
	for(int i=1; i<=cnt; i++) dp[1][i]=Y[i];
	for(int i=2; i<=m; i++)
		for(int j=1; j<=cnt; j++){
			dp[i][j]=((dp[i-1][cnt-j+1]*(Y[j]-X[j]+1))%mod+dp[i][j-1])%mod;
		}
	printf("%lld\n",dp[m][cnt]);
	return 0;
}
```