#include<bits/stdc++.h>
using namespace std;
const int maxn = 10010*4;
struct STree{
int l,r,sum;
}a[maxn];
int n,m;
void build(int k,int p,int q)
{
a[k].l=p;a[k].r=q;
if(p==q)
{
a[k].sum=1;
return;
}
int mid=p+q>>1;
build(k<<1,p,mid);
build(k<<1|1,mid+1,q);
a[k].sum=a[k<<1].sum+a[k<<1|1].sum;
}
void modify(int k,int x,int y)
{
if(a[k].l>y || a[k].r<x || a[k].sum == 0) return;
if(a[k].l>=x && a[k].r<=y)
{
a[k].sum=0;
return;
}
if(x<=a[k<<1].r) modify(k<<1,x,y);
if(y>=a[k<<1|1].l) modify(k<<1|1,x,y);
a[k].sum=a[k<<1].sum+a[k<<1|1].sum;
}
int main()
{
cin>>n>>m;
build(1,0,n);
for(int i=1;i<=m;i++)
{
int x,y;
cin>>x>>y;
modify(1,x,y);
}
cout<<a[1].sum<<" ";
return 0;
}