#include using namespace std; map mx,my; vector> ls[402]; int main(){ int n,b; cin>>n>>b; int x[n],y[n],p[n]; for(int i=0;i>x[i]>>y[i]>>p[i],mx[x[i]]=my[y[i]]=0; mx[(1<<30)]=mx[-(1<<30)]=my[(1<<30)]=my[-(1<<30)]=0; int cnt=0; for(auto it=mx.begin();it!=mx.end();it++) it->second=cnt++; cnt=0; for(auto it=my.begin();it!=my.end();it++) it->second=cnt++; for(int i=0;i> q; for(int y2=0;y2<(int)my.size();y2++){ int pp=0,ptmp=0; for(auto it=ls[y2].begin();it!=ls[y2].end();it++){ if(x1<=mx[it->first]&&mx[it->first]<=x2) pp+=it->second,ptmp++; } q.push(make_pair(pp,ptmp)); point+=pp,tmp+=ptmp; while(point>b&&!q.empty()){ auto rmv=q.front(); q.pop(); point-=rmv.first; tmp-=rmv.second; y1++; } ans=max(ans,tmp); } } } cout<