#include <set>
#include <cstdio>
#include <vector>
#include <utility>
#include <iterator>
#include <algorithm>
using namespace std;

vector<pair<int, int> > v;
int n, m;

int main() {
    scanf("%d%d", &n, &m);
    v.resize(m);
    for (auto &i: v) scanf("%d%d", &i.first, &i.second);
    sort(v.begin(), v.end(), [](const pair<int, int> &a, const pair<int, int> &b) {        if (a.second != b.second) return a.second < b.second;         return a.first > b.first; });
    int cnt = 0;
    multiset<int> s;
    for (int i = 0; i < n; i++) s.insert(-1);
    for (int i = 0; i < m; i++) {
        auto it = s.upper_bound(v[i].first);
        if (it == s.begin()) continue;
        it = prev(it);
        s.erase(it);
        s.insert(v[i].second);
        cnt++;
    }
    printf("%d", cnt);
}
