#include <bits/stdc++.h>
using namespace std;
int n, m, chk[100111];
set<pair<pair<int, int>, int> > s;
vector<pair<int, int> > r[100111];
vector<int> av;
int main() {
  scanf("%d%d", &n, &m);
  for (int i = 0; i < m; i++) {
    int a, b;
    scanf("%d%d", &a, &b);
    r[n - a + 1].push_back({b, i + 1});
  }
  for (int i = 1; i <= n; i++) {
    for (int j = 0; j < r[i].size(); j++)
      s.insert({{r[i][j].first, i}, r[i][j].second});
    while (!s.empty() && s.begin()->first.first < i) s.erase(s.begin());
    if (!s.empty()) av.push_back(s.begin()->second), s.erase(s.begin());
  }
  printf("%d\n", av.size());
  for (int i = 0; i < av.size(); i++) printf("%d ", av[i]);
}
