#include <bits/stdc++.h>
#pragma GCC optimize("Ofast")
using namespace std;
long long ppow(long long x, long long n, long long m) {
  return (!n ? 1 : ((n & 1 ? x : 1) * ppow(x * x % m, n / 2, m) % m));
}
long long fact[1000 * 1000];
void fct(long long x, long long m) {
  fact[0] = 1;
  for (long long i = 1; i <= x; i++) fact[i] = (fact[i - 1] * i) % m;
}
long long C(long long k, long long n, long long m) {
  return (k > n ? 0
                : (fact[n] * ppow((fact[k] * fact[n - k]) % m, m - 2, m)) % m);
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  long long n, k, x, i, ans = 0;
  fct(5e5 + 7, 998244353);
  cin >> n >> k;
  for (i = 1; i <= n; i++) {
    x = n / i;
    (ans += C(k - 1, x - 1, 998244353)) %= 998244353;
  }
  cout << ans << endl;
  cerr << "\nTime elapsed: " << 1000 * clock() / CLOCKS_PER_SEC << "ms\n";
  return 0;
}
