#include <bits/stdc++.h>
using namespace std;
const int N = 2e6 + 10;
int n, m, sum, a[N], b[N];
bool v[N], fst;
priority_queue<int> q[N];
int main() {
  scanf("%d%d", &n, &m);
  for (int i = 1; i <= m; ++i) {
    scanf("%d%d", &a[i], &b[i]);
    q[a[i]].push(a[i] + b[i]);
  }
  for (int i = 1; i <= n; ++i) {
    if (!fst) {
      for (; q[i].empty(); ++i)
        ;
      fst = 1;
    }
    int mxr = q[i].top(), flg;
    for (int j = i + 1; j <= q[i].top() && j <= n; ++j) {
      if (!q[j].empty())
        if (mxr < q[j].top()) {
          mxr = q[j].top();
          flg = j;
        }
    }
    v[i] = 1;
    ++sum;
    if (mxr == q[i].top()) {
      for (i = q[i].top() + 1; q[i].empty() && i <= n; ++i)
        ;
      i--;
    } else
      i = flg - 1;
  }
  printf("%d\n", m - sum);
  for (int i = 1; i <= m; ++i) {
    if (v[a[i]]) {
      if (a[i] + b[i] != q[a[i]].top())
        printf("%d ", i);
      else
        v[a[i]] = 0;
    } else
      printf("%d ", i);
  }
  puts("");
  return 0;
}
