#include <bits/stdc++.h>
using namespace std;
vector<int> dv[2005];
long long mem[2005][2005];
long long dp(int len, int prv) {
  if (len == 0) return 1;
  if (mem[len][prv] > -1) return mem[len][prv];
  long long ret = 0;
  for (int i = 0; i < dv[prv].size(); i++) {
    ret = (ret + dp(len - 1, dv[prv][i])) % 1000000007;
  }
  return mem[len][prv] = ret % 1000000007;
}
int main() {
  int mx = 0;
  for (int i = 1; i <= 2000; i++) {
    for (int j = 1; j <= i; j++) {
      if (i % j == 0) {
        dv[i].push_back(j);
      }
    }
  }
  long long rs = 0;
  int n, k;
  cin >> n >> k;
  memset((mem), (-1), sizeof(mem));
  for (int i = 1; i <= n; i++) {
    rs = (rs + dp(k - 1, i)) % 1000000007;
  }
  cout << rs << "\n";
  return 0;
}
