#include <bits/stdc++.h>
using namespace std;
#define l(x) ((x)&-(x))
int a[11111],dp[11111][555],t[555][5555],n,k;
void as(int x,int y,int d){
for(;x<=k+1;x+=l(x)){
for(;y<=5500;y+=l(y))t[x][y]=max(d,t[x][y]);
}
}
int q(int x,int y){
int ans=0;
for(;x>=1;x-=l(x)){
for(;y>=1;y-=l(y))ans=max(ans,t[x][y]);
}
return ans;
}
signed main() {
cin>>n>>k;
for(int i=1;i<=n;i++)cin>>a[i];
for(int i=1;i<=n;i++){
for(int j=k;j>=0;j--)dp[i][j]=q(j+1,a[i]+j)+1,as(j+1,a[i]+j,dp[i][j]);
}
cout<<q(k+1,5500);
return 0;
}
样例过不去