#include <iostream>
#include <vector>
using namespace std;
int main()
{
int L,M;
cin >> L >> M;
vector<int> range_begain,range_end, tree;
tree.resize(L);
range_begain.resize(M);
range_end.resize(M);
//記錄區間值1
for (int i = 0; i < M;i++)
{
cin >> range_begain[i] >> range_end[i];
}
//記錄樹的值爲1,移除以後記爲0
for (int i = 0; i < L; i++)
{
tree[i] = 1;
}
for (int i = 0; i < M;i++)
{
for (int j = range_begain[i]; j < range_end[i]; j++)
{
tree[j] = 0;
}
}
int num = 0;
for (int i = 0; i < L;i++)
{
if (tree[i]==1)
{
num++;
}
}
cout << num << endl;
system("pause");
return 0;
}