#include<iostream>//2307385 2010-04-07 18:55:39 Accepted 1160 15MS 256K 1004 B C++ 悔惜晟
#include<cstdio>
#include<algorithm>
using namespace std;
struct stu
{
int w;
int s;
int num;
}df[1005];
int cmp(stu a, stu b)
{
if(a.w == b.w)
return a.s > b.s;
else
return a.w < b.w;
}
int main()
{
int n = 1;
while(scanf("%d %d", &df[n].w, &df[n].s) != EOF)
{
df[n].num = n;
n++;
}
sort(&df[0], &df[0] + n, cmp);
int a[1005], b[1005], i, j;
for(i = 1; i <= n ;i++)
a[i] = 1;
for(i = 2; i <= n; i++)
for(j = 1; j < i; j++)
{
if(df[j].w < df[i].w && df[i].s < df[j].s)
{
//a[i] = max(a[i], a[j]+1);
//b[i] = df[j].num;
if(a[j] + 1 > a[i])
{
a[i] = a[j] + 1;//简单的DP
b[df[i].num] = df[j].num;//在处理这里的时候还是好模糊
}
}
}
int MAX = -11;
int k;
for(i = 1; i <= n; i++)
{
if(a[i] > MAX)
{
MAX = a[i];
k = df[i].num;
}
}
printf("%d/n", MAX);
int c[1005];
for(i = MAX; i >= 1; i--)
{
c[i] = k;
k = b[k];
}
for(i = 1; i <= MAX; i++)
printf("%d/n", c[i]);
}