#include <bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define pb push_back
#define ll long long
const int MAXN = 1e4 + 7;
ll n;
pair <ll, ll> a[MAXN];
vector <ll> f;
void solve(){
cin >> n;
for(int i = 1; i <= n; i++){
cin >> a[i].fi >> a[i].se;
if(a[i].fi > a[i].se) swap(a[i].fi, a[i].se);
}
sort(a + 1, a + 1 + n, [&](pair<ll,ll> x, pair<ll,ll> y) {
return x.se < y.se;
});
for(int i = 1; i <= n; i++){
auto it = lower_bound(f.begin(), f.end(), a[i].fi);
if(it == f.end()) f.pb(a[i].fi);
else *it = a[i].fi;
}
cout << f.size();
}
int main(){
ios_base::sync_with_stdio(0);
cout.tie(0);
cin.tie(0);
// freopen("box.inp", "r", stdin); freopen("box.out", "w", stdout);
solve();
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBsbCBsb25nIGxvbmcKY29uc3QgaW50IE1BWE4gPSAxZTQgKyA3OwpsbCBuOwpwYWlyIDxsbCwgbGw+IGFbTUFYTl07CnZlY3RvciA8bGw+IGY7Cgp2b2lkIHNvbHZlKCl7CiAgICBjaW4gPj4gbjsKICAgIGZvcihpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKXsKICAgICAgICBjaW4gPj4gYVtpXS5maSA+PiBhW2ldLnNlOwogICAgICAgIGlmKGFbaV0uZmkgPiBhW2ldLnNlKSBzd2FwKGFbaV0uZmksIGFbaV0uc2UpOwogICAgfQogICAgc29ydChhICsgMSwgYSArIDEgKyBuLCBbJl0ocGFpcjxsbCxsbD4geCwgcGFpcjxsbCxsbD4geSkgewogICAgICAgIHJldHVybiB4LnNlIDwgeS5zZTsKICAgIH0pOwogICAgCiAgICBmb3IoaW50IGkgPSAxOyBpIDw9IG47IGkrKyl7CiAgICAgICAgYXV0byBpdCA9IGxvd2VyX2JvdW5kKGYuYmVnaW4oKSwgZi5lbmQoKSwgYVtpXS5maSk7CiAgICAgICAgaWYoaXQgPT0gZi5lbmQoKSkgZi5wYihhW2ldLmZpKTsKICAgICAgICBlbHNlICppdCA9IGFbaV0uZmk7CiAgICB9CiAgICBjb3V0IDw8IGYuc2l6ZSgpOwp9CgppbnQgbWFpbigpewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsKICAgIGNvdXQudGllKDApOwogICAgY2luLnRpZSgwKTsKICAgIC8vIGZyZW9wZW4oImJveC5pbnAiLCAiciIsIHN0ZGluKTsgZnJlb3BlbigiYm94Lm91dCIsICJ3Iiwgc3Rkb3V0KTsKICAgIHNvbHZlKCk7Cn0K