#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;
}