#include <bits/stdc++.h>   using namespace std;   struct Node {     int x, y, id;   };   bool operator<(const Node &s, const Node &t) {     if (s.x != t.x)       return s.x < t.x;     else       return s.y < t.y;   }   int main() {     int n, m;     scanf( %d%d , &n, &m);     vector<Node> vn;     vector<int> ans;     set<int> se;     for (int i = 0; i < m; i++) {       Node no;       scanf( %d%d , &(no.x), &(no.y));       no.id = i + 1;       vn.push_back(no);     }     sort(vn.begin(), vn.end());     for (int i = 0; i < n; i++) se.insert(i);     for (int i = 0; i < m; i++) {       set<int>::iterator it = se.lower_bound(n - vn[i].y);       if (it == se.end()) continue;       if (*it < vn[i].x) {         se.erase(it);         ans.push_back(vn[i].id);       }     }     sort(ans.begin(), ans.end());     printf( %d n , ans.size());     for (int i = 0; i < ans.size(); i++) printf( %d  , ans[i]);     printf(  n );     return 0;   }   