#include #include using namespace std; const long long MOD = 998244353; long long modPow(long long base, long long exp, long long mod) { long long result = 1; base %= mod; while (exp > 0) { if (exp & 1) result = (result * base) % mod; base = (base * base) % mod; exp >>= 1; } return result; } long long smallC(long long n, long long k) { if (k < 0 || k > n) return 0; if (k == 0 || k == n) return 1; k = min(k, n - k); long long num = 1, den = 1; for (long long i = 0; i < k; ++i) { num = num * ((n - i) % MOD) % MOD; den = den * (i + 1) % MOD; } return num * modPow(den, MOD - 2, MOD) % MOD; } long long lucas(long long n, long long k) { if (k < 0 || k > n) return 0; long long res = 1; while (n || k) { long long ni = n % MOD; long long ki = k % MOD; if (ki > ni) return 0; res = res * smallC(ni, ki) % MOD; n /= MOD; k /= MOD; } return res; } int main() { long long N, K; cin >> N >> K; if (K > N-K) K = N-K; cout << lucas(N, K) << '\n'; return 0; }