#include #include #include using namespace std; const int N = 100+10,mod = 998244353; typedef long long LL; LL f[N][N*N]; int a[N]; int last[N]; int main(){ int n,m; scanf("%d%d",&n,&m); for(int i=1;i<=n;i++){ scanf("%d",&a[i]); } sort(a+1,a+1+n); int now=n; for(int i=n;i>=1;i--){ while(a[now]!=a[i])now--; last[i]=now;//前面相同的数的个数 } f[1][0]=1; for(int i=2;i<=n;i++){ for(int j=i;j>=1;j--){//增加 for(int k=i-j;k<=m;k++){ f[i][k]+=f[i-1][k-(i-j+min((last[j]-j),i-j))]; f[i][k]%=mod; } } } cout<