#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ld = long double;
using ull = unsigned long long;
template <class T>
using PQ = priority_queue<T, vector<T>, greater<T>>;
const long long oo = 1e9;
const long long OO = 1e18;
const double eps = 1e-9;
const double pi = 4.0 * atan(1.0);
const long long p197 = 1000000007;
const long long p998 = 998244353;
const long long p103 = 1000003;
void solve(long long test_case);
signed main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  long long T = 1;
  if (0) cin >> T;
  for (long long t = 1; t <= T; t++) solve(t);
  return 0;
}
const long long mod = p998;
long long n, k;
long long fac[1000000], invfac[1000000];
long long fp(long long first, long long second) {
  long long res = 1;
  while (second > 0) {
    if (second % 2LL) res *= first;
    first *= first;
    first %= mod;
    res %= mod;
    second /= 2LL;
  }
  return res;
}
long long inv(long long first) { return fp(first, mod - 2LL); }
void precalc() {
  long long cur = 1;
  for (long long i = 0; i < 600000; i++) {
    fac[i] = cur;
    invfac[i] = inv(cur);
    cur *= (i + 1LL);
    cur %= mod;
  }
}
long long C(long long N, long long K) {
  long long rep = (fac[N] * invfac[K]) % mod;
  rep *= invfac[N - K];
  rep %= mod;
  return rep;
}
void solve(long long test_case) {
  cin >> n >> k;
  if (k > n) {
    cout << 0 << endl;
    return;
  }
  precalc();
  long long somme = 0;
  for (long long m = 1; m <= n; m++) {
    long long multiples = n / m;
    if (multiples < k) continue;
    somme += C(multiples - 1LL, k - 1LL);
    somme %= mod;
  }
  cout << somme << endl;
}
