#include <cstdio>
#include <algorithm>
#define N 200005
using namespace std;
int n,l,b[N][3],k=1;
struct g {
int start,terminus;//起点,终点
}a[N];
bool cmp(g a,g b) {
return a.start<b.start;
}
int main(void ) {
scanf("%d",&n);
for (int i=1;i<=n;i++) scanf("%d %d",&a[i].start,&a[i].terminus);
stable_sort(a+1,a+n+1,cmp);
for (int i=1;i<=n;i++){
b[i][1]=a[i].terminus;
b[i][2]=1;
}
for (int i=n-1;i>=1;i--){
l=0;
for (int j=i+1;j<=n;j++)
if ((b[j][1]>b[i][1])&&(b[j][2]>l)) {
l=b[j][2];
}
if (l>0)b[i][2]=l+1;
}
for (int j=1;j<=n;j++)
if (b[j][2]>b[k][2])
k=j;
printf("%d",b[k][2]);
}
后几个点不知道怎么就TLE了