#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define pi (4*atan(1.0))
const int N=5e5+10,M=4e6+10,inf=1e9+10;
int sum[N<<2];
int lazy[N<<2];
void pushup(int pos)
{
sum[pos]=sum[pos<<1]+sum[pos<<1|1];
}
void pushdown(int pos)
{
if(lazy[pos]!=-1)
{
lazy[pos<<1]=lazy[pos<<1|1]=0;
sum[pos<<1]=sum[pos<<1|1]=0;
lazy[pos]=-1;
}
}
void build(int l,int r,int pos)
{
lazy[pos]=-1;
if(l==r)
{
sum[pos]=1;
return;
}
int mid=(l+r)>>1;
build(l,mid,pos<<1);
build(mid+1,r,pos<<1|1);
pushup(pos);
}
void update(int L,int R,int l,int r,int pos)
{
if(L<=l&&r<=R)
{
sum[pos]=0;
lazy[pos]=0;
return;
}
pushdown(pos);
int mid=(l+r)>>1;
if(L<=mid)
update(L,R,l,mid,pos<<1);
if(R>mid)
update(L,R,mid+1,r,pos<<1|1);
pushup(pos);
}
int query(int L,int R,int l,int r,int pos)
{
if(L<=l&&r<=R)
return sum[pos];
pushdown(pos);
int mid=(l+r)>>1;
int ans=0;
if(R<=mid)
ans+=query(L,R,l,mid,pos<<1);
if(L>mid)
ans+=query(L,R,mid+1,r,pos<<1|1);
return ans;
}
int main()
{
int n,m,i;
scanf("%d%d",&n,&m);
build(1,n,1);
while(m--)
{
int l,r;
scanf("%d%d",&l,&r);
update(l,r,1,n,1);
printf("%d\n",query(1,n,1,n,1));
}
return 0;
}