#include<cstdio>
#include<cstring>
#include<algorithm>
#include<string>
#include<cmath>
#include<iostream>
#include<vector>
#include<set>
#include<queue>
#include<map>
using namespace std;
typedef long long LL;
const int N=1e5+10,mod=1e6;
const int MAX = 1e8 + 10 ;
/*bool 类型数组表示种树的状态,
true 表示有树,区间都设置为false
遍历true的个数*/
int main(){
int l , m ;
while(cin >> l>> m){
bool has[10010] ;
for(int i = 0 ; i <= l ; i++){
has[i] = true ;
}
for(int i = 1 ; i <= m ; i++){
int le , ri ; //左右节点
cin >> le >> ri ;
for(int i = le ; i <= ri ; i++){
has[i] = false ;
}
}
int num = 0 ;
for(int i = 0 ; i <= l ; i++){
if(has[i] == true){
num ++;
}
}
cout << num <<endl;
}
}