#include <iostream>
#include<algorithm>
using namespace std;
int l,m;
struct ty
{
    int pos,num;
}a[2000005];跟校门外的树差不多,离散化用的数组要大一些
bool comp(ty a,ty b)
{
   return a.pos<b.pos;
}
int main()
{
    cin>>l>>m;
    for(int i=1;i<=m;i++)
    {
        int x,y;
        cin>>x>>y;
        a[i].pos=x;
        a[i].num=1;
        a[i+m].pos=y+1;
        a[i+m].num=-1;
    }
    sort(a+1,a+2*m+1,comp);
   int b=0; int sum=0;
    for(int i=1;i<=2*m;i++)
    {
        b+=a[i].num;
        if(b==1&&a[i].num==1)
        {
            sum+=(a[i].pos-a[i-1].pos);
        }
    }
    sum+=(l-a[2*m].pos+1);
    cout<<sum;
     
    return 0;
}