1 #include<iostream>
2 #include<cstdio>
3 #include<cstring>
4 #include<algorithm>
5
6 using namespace std;
7
8 int M,N,li,ri;
9 int tree[1000000];
10
11 void build(int x,int l,int r)
12 {
13 if(l==r)
14 {
15 tree[x]=1;
16 return ;
17 }
18 int midd=(l+r)/2;
19 build(x*2,l,midd);
20 build(x*2+1,midd+1,r);
21 tree[x]=tree[x*2]+tree[x*2+1];
22 }
23
24 void change(int x,int l,int r,int ll,int rr)
25 {
26 if(l>rr||r<ll||tree[x]==0)
27 return ;
28 if(l>=ll&&r<=rr)
29 {
30 tree[x]=0;
31 return ;
32 }
33 int midd=(l+r)/2;
34 change(x*2,l,midd,ll,rr);
35 change(x*2+1,midd+1,r,ll,rr);
36 tree[x]=tree[x*2]+tree[x*2+1];
37 return ;
38 }
39
40 int main()
41 {
42 cin>>N>>M;
43 build(1,1,N);
44 for(int i=1;i<=M;i++)
45 {
46 cin>>li>>ri;
47 change(1,1,N,li,ri);
48 cout<<tree[1]<<endl;
49 }
50 return 0;
51 }