#include <bits/stdc++.h>
#define LL long long
const LL MOD = 1000000007;
const int SQRT = 66000;
using namespace std;

int N, K;
LL dp[2][SQRT];
map<int, int> pos;
vector<int> ps;

int main() {
	ios::sync_with_stdio(0); cin.tie(0);
	
	cin >> N >> K;
	
	int l = 1;
	ps.push_back(0);
	while (l <= N) {
		ps.push_back(N / (N / l));
		pos[ps.back()] = ps.size() - 1;
		l = N / (N / l) + 1;
	}
	
	for (int i = 1; i < ps.size(); i++) {
		dp[1][i] = ps[i];
	}
	for (int i = 2; i <= K; i++) {
		LL *cur = dp[i % 2], *pre = dp[(i - 1) % 2];
		for (int j = 1; j < ps.size(); j++) {
			cur[j] = ((ps[j] - ps[j - 1]) * pre[pos[N / ps[j]]] + cur[j - 1]) % MOD;
		}
	}
	
	cout << dp[K % 2][ps.size() - 1] << '\n';
}