#include using namespace std; #define int long long #define N 100010 #define len 27 #define M 4000 int n,w,h,a,b,x,ex[M],cnt[N],z[N],ansa,ansb; multiset s[M]; signed main(){ cin>>n>>w>>h; for(int i=1;i<=w;i++){ z[i]=(i+len-1)/len; cnt[i]=h; s[z[i]].insert(h); } for(int t=1;t<=n;t++){ cin>>a>>b>>x; int pre=b; b=x+a-1; a=x; x=pre; if(z[a]==z[b]){ for(int i=a;i<=b;i++){ if(s[z[i]].find(cnt[i])==s[z[i]].end()){ continue; } s[z[i]].erase(s[z[i]].find(cnt[i])); cnt[i]-=x; s[z[i]].insert(cnt[i]); } while((!s[z[a]].empty())&&(*s[z[a]].begin()<=ex[z[a]])){ if(t%2==1){ ansa++; } else{ ansb++; } s[z[a]].erase(s[z[a]].find((*s[z[a]].begin()))); } } else{ for(int i=z[a]*len+1;i<=(z[b]-1)*len;i+=len){ ex[z[i]]+=x; while(!s[z[i]].empty()&&(*s[z[i]].begin()<=ex[z[i]])){ if(t%2==1){ ansa++; } else{ ansb++; } s[z[i]].erase(s[z[i]].find((*s[z[i]].begin()))); } } for(int i=a;i<=z[a]*len;i++){ if(s[z[i]].find(cnt[i])==s[z[i]].end()){ continue; } s[z[i]].erase(s[z[i]].find(cnt[i])); cnt[i]-=x; s[z[i]].insert(cnt[i]); } while(!s[z[a]].empty()&&(*s[z[a]].begin()<=ex[z[a]])){ if(t%2==1){ ansa++; } else{ ansb++; } s[z[a]].erase(s[z[a]].find((*s[z[a]].begin()))); } for(int i=(z[b]-1)*len+1;i<=b;i++){ if(s[z[i]].find(cnt[i])==s[z[i]].end()){ continue; } s[z[i]].erase(s[z[i]].find(cnt[i])); cnt[i]-=x; s[z[i]].insert(cnt[i]); } while(!s[z[b]].empty()&&(*s[z[b]].begin()<=ex[z[b]])){ if(t%2==1){ ansa++; } else{ ansb++; } s[z[b]].erase(s[z[b]].find((*s[z[b]].begin()))); } } } if(ansa