#include <bits/stdc++.h>
using namespace std;
const long long inf = 1e17;
const long long mod = 998244353;
long long maxn = 5e5 + 5, n, k;
vector<long long> fact(maxn), mi(maxn);
long long extendedEuclid(long long a, long long m, long long &x, long long &y) {
  if (m == 0) {
    x = 1;
    y = 0;
    return a;
  }
  long long g = extendedEuclid(m, a % m, x, y);
  long long tmpx = x, tmpy = y;
  x = tmpy;
  y = tmpx - tmpy * (a / m);
  return g;
}
long long modInverse(long long a, long long m) {
  long long x, y;
  extendedEuclid(a, m, x, y);
  return (x + m) % m;
}
long long nCrmodp(long long n, long long r, long long p) {
  if (n < r) return 0;
  if (r == 0 || r == n) return 1;
  return (fact[n] * mi[r] % p * mi[n - r] % p) % p;
}
void solve() {
  cin >> n >> k;
  fact[0] = 1;
  for (long long i = (1); i < (maxn); i++) {
    fact[i] = fact[i - 1] * i % mod;
  }
  for (long long i = (1); i < (maxn); i++) {
    mi[i] = modInverse(fact[i], mod);
  }
  long long ans = 0;
  for (long long i = (1); i < (n + 1); i++) {
    ans = (ans + nCrmodp(n / i - 1, k - 1, mod)) % mod;
  }
  cout << ans << endl;
  return;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  solve();
  return 0;
}
