func_code_string: #include <bits/stdc++.h>   using namespace std;   const long long inf = 1e9 + 10, N = 2e5 + 10, mod = 998244353, lg = 20,                   sq = 450;   long long t, n, k, first[N], ans;   inline long long power(long long x, long long y) {     long long ret = 1;     x %= mod;     while (y) {       if (y & 1) ret = (ret * x) % mod;       x = (x * x) % mod;       y >>= 1;     }     return ret;   }   inline long long C(long long x, long long y) {     long long ret = first[y];     ret = (ret * power(first[x], mod - 2)) % mod;     ret = (ret * power(first[y - x], mod - 2)) % mod;     return ret;   }   int main() {     ios_base::sync_with_stdio(0);     cin.tie(0);     cout.tie(0);     first[0] = 1;     for (int i = 1; i < N; i++) first[i] = (first[i - 1] * i) % mod;     cin >> n >> k;     if (k >= n) return cout << 0, 0;     for (int i = 0; i <= n - k; i += 2)       ans = (ans + ((power(n - k - i, n) * C(n - k - i, n - k)) % mod)) % mod;     for (int i = 1; i <= n - k; i += 2)       ans =           (mod + ans - ((power(n - k - i, n) * C(n - k - i, n - k)) % mod)) % mod;     ans = (ans * C(n - k, n)) % mod;     if (k) ans = (ans * 2) % mod;     cout << ans;   }   