1 #include <cstdio>
2 #include <cstring>
3 #include <algorithm>
4 #define LL long long
5
6 using namespace std;
7
8 struct node{
9 int x,y;
10 };
11 node s[100010];
12 int ans[100010];
13 bool cmp(node a,node b) //排序
14 {
15 if(a.y<b.y)
16 return true;
17 else
18 {
19 if(a.y==b.y)
20 return a.x>b.x;
21 else
22 return false;
23
24 }
25 }
26
27 int main()
28 {
29 int n,t,j,c;//t记录选择区间的最后点 c记录总个数
30 scanf("%d",&n);
31 for(int i=1;i<=n;i++)
32 scanf("%d%d",&s[i].x,&s[i].y);
33 sort(s+1,s+1+n,cmp);
34 //for(int i=1;i<=n;i++)
35 // printf("%d %d\n",s[i].x,s[i].y);
36
37 // scanf("%d",&c);
38 t=s[1].y; c=1; ans[0]=1;
39 for(int i=2;i<=n;i++)
40 {
41 if(s[i].x>t) //查找比上一个最后大的区间
42 {
43 t=s[i].y; ans[c++]=i;
44 }
45 }
46 printf("%d\n",c);
47 for(int i=0;i<c;i++)
48 printf("%d ",ans[i]);
49 printf("\n");
50 return 0;
51 }
52
53