#include<bits/stdc++.h>
using namespace std;
struct NODE{
int l,w;
}a[50009];
int dp[50009];
bool cmp(NODE& x,NODE& y){
if(x.l!=y.l)return x.l>y.l;
return x.w>y.w;
}
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++)cin>>a[i].l>>a[i].w;
sort(a,a+n,cmp);
int ans=0;
for(int i=1;i<n;i++){
for(int j=0;j<i;j++){
if(a[i].w>a[j].w)
dp[i]=max(dp[j]+1,dp[i]);
}
ans=(ans,dp[i]);
}
cout<<ans+1;
return 0;
}