#include<bits/stdc++.h>
using namespace std;
using ll = long long;
const int MOD = 1e9+7;
inline void add(int &a, int b) { a += b; if (a >= MOD) a -= MOD; }
int n, k;
void solve() {
cin >> n >> k;
vector<int> dp(n + 1, 1);
for (int i = 2; i <= k; i++) {
vector<int> next_dp(n + 1, 0);
for (int x = 1; x <= n; x++) {
if (dp[x] == 0) continue;
for (int y = x; y <= n; y += x) add(next_dp[y], dp[x]);
}
dp = move(next_dp);
}
int ans = 0;
for (int x = 1; x <= n; x++) add(ans, dp[x]);
cout << ans << '\n';
}
int main() {
ios_base::sync_with_stdio(false); cin.tie(NULL);
#define TASK "DEMBOSO"
if (fopen(TASK".INP", "r")) {
freopen(TASK".INP", "r", stdin);
freopen(TASK".OUT", "w", stdout);
}
int tests = 1; // cin >> tests;
while (tests--) solve();
#ifdef LOCAL
cerr << "\nTime elapsed: " << 1.0 * clock() / CLOCKS_PER_SEC << " s.\n";
#endif
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnVzaW5nIGxsID0gbG9uZyBsb25nOwoKY29uc3QgaW50IE1PRCA9IDFlOSs3OwppbmxpbmUgdm9pZCBhZGQoaW50ICZhLCBpbnQgYikgeyBhICs9IGI7IGlmIChhID49IE1PRCkgYSAtPSBNT0Q7IH0KCmludCBuLCBrOwoKdm9pZCBzb2x2ZSgpIHsKICAgIGNpbiA+PiBuID4+IGs7CiAgICB2ZWN0b3I8aW50PiBkcChuICsgMSwgMSk7CiAgICBmb3IgKGludCBpID0gMjsgaSA8PSBrOyBpKyspIHsKICAgICAgICB2ZWN0b3I8aW50PiBuZXh0X2RwKG4gKyAxLCAwKTsKICAgICAgICBmb3IgKGludCB4ID0gMTsgeCA8PSBuOyB4KyspIHsKICAgICAgICAgICAgaWYgKGRwW3hdID09IDApIGNvbnRpbnVlOwogICAgICAgICAgICBmb3IgKGludCB5ID0geDsgeSA8PSBuOyB5ICs9IHgpIGFkZChuZXh0X2RwW3ldLCBkcFt4XSk7CiAgICAgICAgfQogICAgICAgIGRwID0gbW92ZShuZXh0X2RwKTsKICAgIH0KICAgIGludCBhbnMgPSAwOwogICAgZm9yIChpbnQgeCA9IDE7IHggPD0gbjsgeCsrKSBhZGQoYW5zLCBkcFt4XSk7CiAgICBjb3V0IDw8IGFucyA8PCAnXG4nOwp9CgppbnQgbWFpbigpIHsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOyBjaW4udGllKE5VTEwpOwoKICAgICNkZWZpbmUgVEFTSyAiREVNQk9TTyIKICAgIGlmIChmb3BlbihUQVNLIi5JTlAiLCAiciIpKSB7CiAgICAgICAgZnJlb3BlbihUQVNLIi5JTlAiLCAiciIsIHN0ZGluKTsKICAgICAgICBmcmVvcGVuKFRBU0siLk9VVCIsICJ3Iiwgc3Rkb3V0KTsKICAgIH0KCiAgICBpbnQgdGVzdHMgPSAxOyAvLyBjaW4gPj4gdGVzdHM7CiAgICB3aGlsZSAodGVzdHMtLSkgc29sdmUoKTsKCiAgICAjaWZkZWYgTE9DQUwKICAgIGNlcnIgPDwgIlxuVGltZSBlbGFwc2VkOiAiIDw8IDEuMCAqIGNsb2NrKCkgLyBDTE9DS1NfUEVSX1NFQyA8PCAiIHMuXG4iOwogICAgI2VuZGlmCiAgICByZXR1cm4gMDsKfQo=