#include #include using namespace std; using mint = atcoder::modint998244353; vector tb = {1,464016596,63299249,434731971,55395755,15814281,565294571,293833759,851627080,130777589,542515938}; int main(){ constexpr int th = 100'000'000, mod = 998244353; int n, k; cin >> n >> k; k = min(k, n - k); if(n - k + 1 <= mod && mod <= n){ cout << "0\n"; return 0; } auto fact = [&](int v){ mint res = tb[v / th]; for(int i = max(1, v / th * th); i <= v; i++){ if(i == mod) continue; res *= mint::raw(i); } return res; }; cout << (fact(n) / (fact(k) * fact(n - k))).val() << '\n'; }