#include <bits/stdc++.h>
using namespace std;
long long n, k;
const long long mod = 998244353;
long long nck[200001];
long long p(long long a) {
  long long nn = n;
  long long re = 1;
  while (nn) {
    if (nn & 1) {
      re *= a;
      re %= mod;
    }
    a *= a;
    a %= mod;
    nn >>= 1;
  }
  return re;
}
long long inv(long long a) {
  long long nn = mod - 2;
  long long re = 1;
  while (nn) {
    if (nn & 1) {
      re *= a;
      re %= mod;
    }
    a *= a;
    a %= mod;
    nn >>= 1;
  }
  return re;
}
void f(long long n) {
  nck[0] = 1;
  for (long long i = 1; i <= n; i++) {
    nck[i] = nck[i - 1] * (n - i + 1);
    nck[i] %= mod;
    nck[i] *= inv(i);
    nck[i] %= mod;
  }
}
void solve() {
  cin >> n >> k;
  if (k >= n) {
    cout << "0\n";
    return;
  }
  f(n - k);
  long long ans = 1;
  for (long long i = 1; i <= k; i++) {
    ans *= (n - i + 1);
    ans %= mod;
    ans *= inv(i);
    ans %= mod;
  }
  long long mul = 0;
  for (long long i = n - k; i >= 1; i--) {
    if ((n - k - i) % 2 == 0)
      mul += ((p(i) * nck[i]) % mod);
    else
      mul -= ((p(i) * nck[i]) % mod) % mod;
    mul %= mod;
  }
  if (k)
    cout << (((mul * ans) % mod + mod) * 2) % mod;
  else
    cout << ((mul * ans) % mod + mod) % mod;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  solve();
}
