#include <iostream>
//有一条长度为整数L(1<=L<=10000)的马路,可以将他想象为数轴上长度为L的一条线段,七点是坐标原点,
//在每个整数坐标点处有一颗树,即0~L上有L+1棵树
//现在要移走一些树,移走的树的区间用一对数字表示,如“100 200”表示移走100~200之间的树(包括端点)
//可能有M(1<=M<=100)个区间,区间之间可能有重叠,现在要求移走所有区间树后剩余的树的数量
//输入:两个整数L和组数M
//对于每组数据,输出一个数,表示移走所有区间之后剩下的树的棵树
int main() {
int sum=0;
int M,L;
scanf("%d %d",&L,&M);
int Tree[L+1];//下标是0~L
int left,right;
for(int l=0;l<L+1;l++){
Tree[l]={1};//1代表此处有一棵树
}
for(int i=0;i<M;i++){
scanf("%d %d",&left,&right);
for(int j=left;j<=right;j++){
if(Tree[j]==1){
Tree[j]=0;
}
}
}
for(int k=0;k<L+1;k++)
{
if(Tree[k]==1){
sum+=1;
}
}
printf("%d",sum);
return 0;
}