#include <bits/stdc++.h>
using namespace std;
int cnt1[5001] = {0};
int cnt2[5001][5001] = {0};
vector<int> p[5001];
int cnt[5001] = {0};
int solve() {
  int n, q;
  cin >> n >> q;
  vector<pair<int, int>> v;
  for (int j = 0; j < q; j++) {
    int l, r;
    cin >> l >> r;
    v.push_back({l, r});
  }
  sort(v.begin(), v.end());
  for (int j = 0; j < q; j++) {
    for (int i = v[j].first; i <= v[j].second; i++) {
      cnt[i]++;
      if (cnt[i] <= 2) {
        p[i].push_back(j);
      }
    }
  }
  int s = 0;
  for (int j = 1; j <= n; j++) {
    int k = cnt[j];
    if (k) {
      s++;
    }
    if (k == 1) {
      cnt1[p[j][0]]++;
    } else if (k == 2) {
      cnt2[p[j][0]][p[j][1]]++;
      cnt2[p[j][1]][p[j][0]]++;
    }
  }
  int ans = 0;
  for (int j = 0; j < q; j++) {
    for (int i = j + 1; i < q; i++) {
      ans = max(ans, s - cnt1[j] - cnt1[i] - cnt2[i][j]);
    }
  }
  cout << ans << "\n";
  return 0;
}
signed main() {
  ios::sync_with_stdio(0);
  cin.tie(NULL);
  cout.tie(NULL);
  int t;
  t = 1;
  while (t--) {
    solve();
  }
  return 0;
}
