#include <bits/stdc++.h>

using namespace std;

#define rep(i, a, n) for (int i = a, _n = n; i <= _n; ++i)
#define drep(i, a, n) for (int i = a, _n = n; i >= _n; --i)
#define debug(x) cout << #x << " = " << x << endl

const int N = 65000;
const int Mod = 1e9 + 7;

int n, k;
int L[N], R[N], Cnt[N];

long long dp[105][N];
int main () {
	scanf ("%d%d", &n, &k);
	swap(n, k);
	int y = 1, cnt = 0;
	while (y <= k) {
		int t = k / y;
		int c = k / t;
		L[++cnt] = y, R[cnt] = c;
		y = c + 1;
	}
	rep (i, 1, cnt) dp[1][i] = Cnt[i] = R[i] - L[i] + 1;
	rep (i, 2, n) {
		long long Sum = 0;
		rep (j, 1, cnt) {
			(Sum += dp[i - 1][j]) %= Mod;
			dp[i][cnt - j + 1] = Sum * Cnt[cnt - j + 1] % Mod;
		}
	}
	long long Ans = 0;
	rep (i, 1, cnt) (Ans += dp[n][i]) %= Mod;
	cout << Ans << endl;
	return 0;
}

### 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 <bits/stdc++.h>

using namespace std;

#define rep(i, a, n) for (int i = a, _n = n; i <= _n; ++i)
#define drep(i, a, n) for (int i = a, _n = n; i >= _n; --i)
#define debug(x) cout << #x << " = " << x << endl

const int N = 65000;
const int Mod = 1e9 + 7;

int n, k;
int L[N], R[N], Cnt[N];

long long dp[105][N];
int main () {
	scanf ("%d%d", &n, &k);
	swap(n, k);
	int y = 1, cnt = 0;
	while (y <= k) {
		int t = k / y;
		int c = k / t;
		L[++cnt] = y, R[cnt] = c;
		y = c + 1;
	}
	rep (i, 1, cnt) dp[1][i] = Cnt[i] = R[i] - L[i] + 1;
	rep (i, 2, n) {
		long long Sum = 0;
		rep (j, 1, cnt) {
			(Sum += dp[i - 1][j]) %= Mod;
			dp[i][cnt - j + 1] = Sum * Cnt[cnt - j + 1] % Mod;
		}
	}
	long long Ans = 0;
	rep (i, 1, cnt) (Ans += dp[n][i]) %= Mod;
	cout << Ans << endl;
	return 0;
}

```