#include <iostream>
#include<vector>
#include <algorithm>
using namespace std;
int main() {
int L,M;
cin>>L>>M;
int sum=L+1;
vector<vector<int>> arr(M, vector<int>(2));
vector<int> regionLengths(M);
for(int i=0;i<M;i++){
cin>>arr[i][0]>>arr[i][1];
regionLengths.push_back(arr[i][1]-arr[i][0]+1);
}
sort(arr.begin(), arr.end());
int totalOverlap = 0;
int currentEnd = arr[0][1];
for(int i = 1; i < M; i++) {
if(arr[i][0] <= currentEnd) { // 有重叠
totalOverlap += min(currentEnd, arr[i][1]) - arr[i][0] + 1;
currentEnd = max(currentEnd, arr[i][1]);
} else {
currentEnd = arr[i][1];
}
}
// 计算总区域长度
int totalRegionLength = 0;
for(int length : regionLengths) {
totalRegionLength += length;
}
cout << sum - totalRegionLength + totalOverlap << endl;
}
// 64 位输出请用 printf("%lld")