同AC
struct node
{
int x,y;
bool operator<(const node& a)const
{
return x < a.x || (x == a.x && y < a.y);
}
}a[55];
int n;
int dp[55];
int main()
{
while(scanf("%d",&n) != EOF)
{
for(int i = 0; i < n; i++)
scanf("%d%d",&a[i].x,&a[i].y);
sort(a,a+n);
int ans = 0;
dp[0] = 1;
for(int i = 1; i < n; i++)
{
dp[i] = 1;
for(int j = 0; j < i; j++)
if(a[j].x < a[i].x && a[j].y <
a[i].y)
dp[i] = max(dp[i],dp[j]+1);
ans = max(ans,dp[i]);
}
printf("%d\n",ans);
}
return 0;
}