#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 Mod = 1e9 + 7;

int n, k, x, y;

struct node {
	int x, y;
};

vector<int> V;

long long dp[105][70000];

int main () {
	scanf ("%d%d", &n, &k);
	x = 1;
	while (x <= n) {
		int t = n / x;
		y = n / t;
		V.push_back(y - x + 1);
		x = y + 1;
	}

	dp[0][0] = 1;

	rep(i, 1, k) {
		long long sum = 0;
		drep(j, V.size() - 1, 0) {
			sum += dp[i - 1][V.size() - 1 - j];
			sum %= Mod;
			dp[i][j] = sum * V[j] % Mod;
		}
	}

	long long ans = 0;

	rep(i, 0, V.size() - 1) ans += dp[k][i], ans %= Mod;

	printf ("%lld\n", ans);

	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>

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 Mod = 1e9 + 7;

int n, k, x, y;

struct node {
	int x, y;
};

vector<int> V;

long long dp[105][70000];

int main () {
	scanf ("%d%d", &n, &k);
	x = 1;
	while (x <= n) {
		int t = n / x;
		y = n / t;
		V.push_back(y - x + 1);
		x = y + 1;
	}

	dp[0][0] = 1;

	rep(i, 1, k) {
		long long sum = 0;
		drep(j, V.size() - 1, 0) {
			sum += dp[i - 1][V.size() - 1 - j];
			sum %= Mod;
			dp[i][j] = sum * V[j] % Mod;
		}
	}

	long long ans = 0;

	rep(i, 0, V.size() - 1) ans += dp[k][i], ans %= Mod;

	printf ("%lld\n", ans);

	return 0;
}

```