#include <iostream>
using namespace std;
typedef long long ll;
ll n,id,l,r,m;
pair<ll,ll>p[100001],lis[100001];
int main()
{
	cin>>n;

	for(ll i = 1;i<=n;++i)
		cin>>p[i].first>>p[i].second;

	lis[id++] = p[1];

	for(ll i = 2;i<=n;++i){
		if(p[i].first < lis[0].first && p[i].second < lis[0].second)
			lis[0] = p[i];
		else if(p[i].first > lis[id-1].first && p[i].second > lis[id-1].second)
			lis[id++] = p[i];
		else{

			l = 0;
			r = id-1;

			while(r > l+1){
				m = (l+r)/2;

				if(p[i].first < lis[m].first && p[i].second < lis[m].second)
					r = m;
				else
					l = m;
			}

			lis[r] = p[i];
		}
	}

	cout<<id<<endl;
}