#include <bits/stdc++.h>
using namespace std;
int N, k;
long long int memo[2005][2005];
long long int dp(int idx, int prev) {
  if (prev > N) return 0;
  if (memo[idx][prev] != -1) return memo[idx][prev];
  if (idx == k) return 1;
  long long int total = 0;
  for (int i = 1; i * prev <= N; i++) {
    total += dp(idx + 1, i * prev) % 1000000007;
  }
  return memo[idx][prev] = total % 1000000007;
}
int main(int argc, char *argv[]) {
  scanf("%d %d", &N, &k);
  long long int good = 0;
  memset(memo, (-1), sizeof(memo));
  for (int i = 1; i <= N; i++) {
    good += dp(1, i) % 1000000007;
  }
  cout << good % 1000000007 << endl;
  return 0;
}
