// 直接对每个点进行排序
#include <algorithm>
#include <iostream>
#include <utility>
#include <vector>
using namespace std;
bool cmp(pair<int,int> s1, pair<int,int> s2){
if(s1.first != s2.first)
return s1.first < s2.first;
else
return s1.second < s2.second;
}
int main() {
int n, m;
cin >> n >> m;
int sum = n+1;
int start , end;
vector<pair<int,int>> cuts(m);
for(int i=0; i<m; i++)
cin >> cuts[i].first >> cuts[i].second;
sort(cuts.begin(), cuts.end(), cmp);
start = cuts[0].first; end = cuts[0].second;
int len = 0; // 用来记录每次应该减去多少
for(int i=0; i<m; i++){
int curLen;
if(cuts[i].first > end){
start = cuts[i].first; end = cuts[i].second;
len = end-start+1;
}else{
end = max(cuts[i].second, end);
len = (end-start+1) - len;
}
sum -= len;
len = (end-start+1);
}
cout << sum << endl;
return 0;
}
// 64 位输出请用 printf("%lld")