#include using namespace std; #include using namespace atcoder; using ll = long long; int n,b; vector x,y,p; void solve(){ { set st; for(int i = 0;i mp; for(auto &i:st){ mp[i] = idx++; } for(int i = 0;i st; for(int i = 0;i mp; for(auto &i:st){ mp[i] = idx++; } for(int i = 0;i>> binp(400); for(int i = 0;i(y[i],p[i])); } int ans = 0; for(int _ = 0;_<400;_++){ vector sump(400),sumc(400); for(int x =_;x<400;x++){ for(auto &[y,p]:binp[x]){ sump[y] += p; sumc[y] += 1; } queue Q; int curSum=0; int cur = 0; for(int i = 0;i<400;i++){ Q.push(i); cur += sumc[i]; curSum += sump[i]; while(curSum>b){ int idx = Q.front(); cur -= sumc[idx]; curSum -= sump[idx]; Q.pop(); } ans = max(ans,cur); } } } cout<> n >> b; x = y = p = vector(n); for(int i = 0;i> x[i] >> y[i] >> p[i]; solve(); }