#include #include #define int long long using namespace std; constexpr int mod=998244353; signed main(){ int N,K; cin>>N>>K; map mp; for(int i=0;i>a; mp[a]++; } int M=mp.size(); vector> dp(N+1,vector(K+1)); dp[0][0]=1; int sum=0; vector B; for(auto[a,b]:mp)B.push_back(b); reverse(B.begin(),B.end()); for(int b:B){ vector>> dp2(b+1,vector>(sum+1,vector(K+1))); dp2[0][0][0]=1; for(int i=0;i A(K+1); for(int i=0;i<=K;i++){ for(int j=0;j<=sum;j++)(A[i]+=dp2[b][j][i])%=mod; } vector C=atcoder::convolution(A,dp[sum]); for(int i=0;i<=K;i++)dp[sum+b][i]=C[i]; sum+=b; } cout<