#include <iostream>
using namespace std;
//Author: Daniel "3ICE" Berezvai

struct R{//runner
	int s;//start
	int v;//vége
};

int main(){
	int k, n;
	cin >> k >> n;

	R* A = new R[n];
	for (int i = 0; i < n; i++){
		cin >> A[i].s;
		cin >> A[i].v;
	}
	int* opt = new int[n];
	int x = 0;//for indexing opt

	int ottVagyun=0;
	int mar;//akt. max
	int id; //sorszama
	while(ottVagyun<k){//Ott vagyunk mar?
		mar=ottVagyun;//k
		for (int i = 0; i < n; i++){
			if (A[i].s <= ottVagyun && A[i].v > mar){
				mar = A[i].v;
				id = i;
			}
		}
		ottVagyun = mar;
		opt[x] = id+1;
		x++;
	}

	cout << x << endl;
	for (int i = 0; i < x; i++)
		cout << opt[i] << " ";

	delete[] opt;//no memory leaks!
	//cin >> n;
	return 0;
}
