#include <bits/stdc++.h>
using namespace std;
const double eps = 1e-8;
const int inf = 0x3f3f3f3f;
const long long INF = 0x3f3f3f3f3f3f3f3f;
const int mod = 998244353;
const int N = 5e5 + 10, M = 17;
long long f[N], inv[N];
long long kpow(long long a, long long n) {
  long long res = 1;
  while (n) {
    if (n & 1) res = (res * a) % mod;
    a = (a * a) % mod;
    n >>= 1;
  }
  return res;
}
void init() {
  f[0] = inv[0] = 1;
  for (int i = 1; i < N; i++) {
    f[i] = (f[i - 1] * i) % mod;
    inv[i] = (inv[i - 1] * kpow(i, mod - 2)) % mod;
  }
}
void solve() {
  int n, k;
  scanf("%d%d", &n, &k);
  if (n < k) {
    puts("0");
    return;
  }
  long long res = 0;
  for (int i = 1; i <= n / k; i++) {
    long long cnt = n / i;
    res = (res + f[cnt - 1] * inv[k - 1] % mod * inv[cnt - k] % mod) % mod;
  }
  printf("%lld\n", res);
}
int main() {
  init();
  solve();
  return 0;
}
