#include <bits/stdc++.h>
using namespace std;
const long long int N = 500005;
const long long int mod = 998244353;
long long int fact[N], invfact[N];
inline long long int add(long long int x, long long int y) {
  x += y;
  return x % mod;
}
inline long long int sub(long long int x, long long int y) {
  x -= y;
  x %= mod;
  x += mod;
  return x % mod;
}
inline long long int mul(long long int x, long long int y) {
  return (x * y) % mod;
}
inline long long int powr(long long int a, long long int b) {
  long long int x = 1 % mod;
  b %= (mod - 1);
  while (b) {
    if (b & 1) x = mul(x, a);
    a = mul(a, a);
    b >>= 1;
  }
  return x;
}
inline long long int inv(long long int a) { return powr(a, mod - 2); }
void pre() {
  fact[0] = invfact[0] = 1;
  for (long long int i = 1; i < N; i++) fact[i] = mul(i, fact[i - 1]);
  invfact[N - 1] = inv(fact[N - 1]);
  for (long long int i = N - 2; i >= 1; i--)
    invfact[i] = mul(invfact[i + 1], i + 1);
  assert(invfact[1] == 1);
}
inline long long int C(long long int n, long long int k) {
  if (n < k || k < 0) return 0;
  return mul(fact[n], mul(invfact[k], invfact[n - k]));
}
void solve() {
  long long int i, j, k, n, m, ans = 0, cnt = 0, sum = 0;
  cin >> n >> k;
  if (n < k) {
    cout << 0;
  } else {
    for (i = 1; i <= n; i++) {
      cnt = n / i;
      ans = add(ans, C(cnt - 1, (k - 1)));
    }
    cout << ans;
  }
  return;
}
int32_t main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  pre();
  solve();
  return 0;
}
