#include using namespace std; int main(){ int H,W; cin>>H>>W; int base=0; priority_queue,vector>,greater>> ap,dap; vector Y(W); for(int i=0;i>x>>y; base+=x-1; ap.push({max(1,y-(x-1)),i}); Y[i]=y; } int rej=0,now=0; int extra=0; vector seen(W,0); for(int i=1;i<=W;i++){ while(ap.size() and ap.top().first==i){ int idx=ap.top().second; ap.pop(); seen[idx]++; now++; dap.push({min(W+1,Y[idx]+1),idx}); } while(dap.size() and dap.top().first==i){ int idx=dap.top().second; dap.pop(); if(seen[idx]<2){ now--; seen[idx]++; rej++; } } if(0