#include <bits/stdc++.h>
using namespace std;
int min(int a, int b);
int max(int a, int b);
const int M = 5e3 + 3;
int L[M], dp[M];
int main() {
  int n, m;
  cin >> n >> m;
  for (int i = 1; i <= n; i++) L[i] = i + 1;
  for (int i = 0; i < m; i++) {
    int l, r;
    cin >> l >> r;
    for (int j = l; j <= r; j++) L[j] = min(l, L[j]);
  }
  for (int i = 1; i <= m - 2; i++) {
    for (int j = n; j >= 1; j--)
      dp[j] = max(dp[j], dp[L[j] - 1] + j - L[j] + 1);
    for (int j = 1; j <= n; j++) dp[j] = max(dp[j], dp[j - 1]);
  }
  cout << dp[n];
  return 0;
}
int min(int a, int b) { return (a < b ? a : b); }
int max(int a, int b) { return (a > b ? a : b); }
