#include #include using namespace std; const int MOD = 998244353; int main(){ const int maxSize = 200001; vector inv(maxSize); vector fact(maxSize); vector factInv(maxSize); for(int i=0;i<2;i++) inv[i] = fact[i] = factInv[i] = 1; for(int i=2;i> N >> K){ vector cnt(1024, 0); for(int i=0;i> a; cnt[a]++; } vector> dp(11, vector(1024, 0)); dp[0][0] = 1; for(int k=1;k<1024;k++){ for(int i=9;i>=0;i--){ for(int j=0;j<1024;j++){ if(j&k) continue; dp[i+1][j|k] = (dp[i+1][j|k] + cnt[k] * dp[i][j]) % MOD; } } } long long res = 0; for(int i=0;i<=10;i++){ if(i > K) break; for(auto& t : dp[i]){ res = (res + t * comb(cnt[0], K-i)) % MOD; } } cout << res << endl; } }