#include using namespace std; int par[100010],sz[100010]; long long sz2[100010],b[100010]; bool flag[100010]; void init(int n){ for(int i=0;isz[y]) swap(x,y); par[x] = y; sz[y] += sz[x]; sz2[y] += sz2[x]; flag[y] |= flag[x]; flag[y] |= f; } bool same(int x, int y){ return find(x)==find(y); } long long l[100010],r[100010]; int main(){ int i,n,m; cin >> n >> m; for(i=0;i> b[i]; for(i=0;i> l[i] >> r[i]; for(i=n;i>0;i--) b[i] += b[i - 1]; init(n + 1); for(i=0;i