#include<bits/stdc++.h>
using namespace std;
int f[1000111],n;
struct node{
int x,y;
}a[1001011];
bool cmp(node x,node y){
return x.x<y.x;
}
int ans;
int main(){
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i].x>>a[i].y;
sort(a+1,a+n+1,cmp);
for(int i=0;i<=100001;i++)
f[i]=1;
for(int i=n-1;i>=1;i--)
for(int j=i+1;j<=n;j++)
if(a[i].y<a[j].y)
f[i]=max(f[j]+1,f[i]);
for(int i=1;i<=n;i++)
ans=max(f[i],ans);
cout<<ans;
return 0;
}