#include <stdio.h>
int main ()
{
int l,m,u[10000]={0},v[10000]={0};
int i,j,k;
scanf("%d%d",&l,&m);
scanf("%d%d",&u[1],&v[1]);
l=l-(v[1]-u[1]);
for(i=2;i<=m;i++)//组数的循环
{
scanf("%d%d",&u[i],&v[i]);
for(j=1;j<=i-1;j++)//每一个数要与所有组数比看有没有重合
{
if((v[i]>u[j])&&(v[i]<v[j])&&u[i]<u[j])//新一项较大数大于前一项较小数
{
l=l-((v[i]-u[i])-(v[i]-u[j]));
}
else if((u[i]<v[j])&&(v[i]>v[j])&&(u[i]>u[j]) )//新一项的较小值比原来的较大值小
{
l=l-((v[i]-u[i])-(v[j]-u[i]));
}
else if ((u[i]>u[j])&&(v[i]<v[j]) )//完全被覆盖住的新范围
{
l=l;
}
else//正常情况
{
l=l-(v[i]-u[i]);
}
}
}
printf("%d\n",l);
return 0;
}