#include<bits/stdc++.h>
#define N 64000
#define LL long long
#define Mod 1000000007
#define db(x) cout<<#x<<"="<<x<<endl;
using namespace std;
int n,k,t,cnt[N];
int l[N],r[N],tot;
LL dp[105][N];
int main() {
	scanf("%d%d",&n,&k);
	int x=1;
	while(x<=n) {
		int a=n/x;
		int b=n/a;
		l[++tot]=x,r[tot]=b;
		x=b+1;
	}
	for(int i=1; i<=tot; i++)dp[1][i]=cnt[i]=r[i]-l[i]+1,dp[1][i]+=dp[1][i-1];
	for(int i=2; i<=k; i++)
		for(int j=1; j<=tot; j++) {
			dp[i][j]+=dp[i-1][tot-j+1]*cnt[j]%Mod;
			dp[i][j]+=dp[i][j-1];
			dp[i][j]%=Mod;
		}
	printf("%lld\n",dp[k][tot]);
	return 0;
}

### 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>
#define N 64000
#define LL long long
#define Mod 1000000007
#define db(x) cout<<#x<<"="<<x<<endl;
using namespace std;
int n,k,t,cnt[N];
int l[N],r[N],tot;
LL dp[105][N];
int main() {
	scanf("%d%d",&n,&k);
	int x=1;
	while(x<=n) {
		int a=n/x;
		int b=n/a;
		l[++tot]=x,r[tot]=b;
		x=b+1;
	}
	for(int i=1; i<=tot; i++)dp[1][i]=cnt[i]=r[i]-l[i]+1,dp[1][i]+=dp[1][i-1];
	for(int i=2; i<=k; i++)
		for(int j=1; j<=tot; j++) {
			dp[i][j]+=dp[i-1][tot-j+1]*cnt[j]%Mod;
			dp[i][j]+=dp[i][j-1];
			dp[i][j]%=Mod;
		}
	printf("%lld\n",dp[k][tot]);
	return 0;
}

```