#include <bits/stdc++.h>
using namespace std;
const int MAXN = 200005;
const long long MOD = 998244353;
int n, k;
long long f[MAXN], r[MAXN];
long long mpow(long long bs, long long ep) {
  long long ret = 1;
  while (ep) {
    if (ep & 1) {
      ret = ret * bs % MOD;
    }
    bs = bs * bs % MOD;
    ep >>= 1;
  }
  return ret;
}
long long C(long long m, long long p) {
  return f[m] * r[p] % MOD * r[m - p] % MOD;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  ;
  cin >> n >> k;
  f[0] = r[0] = 1;
  for (int i = 1; i <= n; i++) {
    f[i] = f[i - 1] * i % MOD;
    r[i] = mpow(f[i], MOD - 2);
  }
  long long c = n - k;
  if (c <= 0) {
    cout << 0 << '\n';
    return 0;
  }
  long long ans = 0;
  for (int i = 0; i < c; i++) {
    long long add = C(c, i) * mpow(c - i, n) % MOD;
    if (i & 1) {
      add = MOD - add;
    }
    ans = (ans + add) % MOD;
  }
  cout << (k ? 2 : 1) * ans * C(n, c) % MOD << '\n';
}
