#include <bits/stdc++.h>
using namespace std;
struct Node {
  int l, r, id;
} op[200010];
bool cmp(Node a, Node b) { return a.l < b.l || (a.l == b.l && a.r > b.r); }
int vis[200010];
int main() {
  int n, m;
  scanf("%d%d", &m, &n);
  for (int i = 0; i < n; ++i) {
    scanf("%d%d", &op[i].l, &op[i].r);
    op[i].r += op[i].l - 1;
    op[i].id = i + 1;
  }
  sort(op, op + n, cmp);
  int j = 0, R = op[j].r, k = 0, L = op[j].r;
  vis[op[j].id] = 1;
  while (k < n) {
    while (k < n && op[k].l - 1 <= L) {
      if (op[k].r > R) {
        j = k;
        R = op[k].r;
      }
      ++k;
    }
    vis[op[j].id] = 1;
    L = R;
    if (op[k].r > R) {
      j = k;
      R = op[k].r;
    }
  }
  int ans = 0;
  for (int i = 1; i <= n; ++i)
    if (!vis[i]) ++ans;
  printf("%d\n", ans);
  for (int i = 1; i <= n; ++i)
    if (!vis[i]) printf("%d ", i);
  puts("");
  return 0;
}
