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

Solution (in CPP):

Solution:
#include <bits/stdc++.h>
using namespace std;

const int K = 102, S = 33004, mod = 1e9 + 7;
int n, k, sn, s[S], dp[K][S * 2];

int C(int i) {
	if(i == sn) return s[i] - sn; // # //
	return s[i] - s[i + 1];
}

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	cin >> n >> k;
	sn = sqrt(n);
	for(int i = 1; i <= sn; ++i) {
		s[i] = n / i;
	}
	for(int i = 1; i <= 2 * sn; ++i) {
		dp[0][i] = 1;
	}
	for(int i = 1; i <= k; ++i) {
		for(int j = 1; j <= sn; ++j) {
			dp[i][j] = dp[i - 1][2 * sn + 1 - j];
		}
		for(int j = 1; j <= sn; ++j) {
			dp[i][2 * sn + 1 - j] = ((long long)dp[i - 1][j] * C(j)) % mod;
		}
		for(int j = 1; j <= 2 * sn; ++j) {
			(dp[i][j] += dp[i][j - 1]) %= mod;
		}
	}
	cout << dp[k][2 * sn] << endl;
	return 0;
}