#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;
}
