#include <iostream>
#include <algorithm>
#include <vector>
#define pii pair<int, int>
using namespace std;
pii arr[101];
vector<vector<int> > v(501);
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int n;
cin >> n;
for (int i = 0; i < n; i++)
cin >> arr[i].first >> arr[i].second;
// pair의 first 기준 정렬
sort(arr, arr + n);
// second 값이 더 작으면 2차원 벡터에 삽입
int cnt = 0;
for (int i = 1; i < n; i++) {
for (int j = 0; j < i; j++) {
if (arr[i].second < arr[j].second) {
v[arr[i].first].push_back(arr[j].first);
v[arr[j].first].push_back(arr[i].first);
cnt++;
}
}
}
int ans = 0;
while (cnt > 0) {
int max_size = 0;
int max_idx = 0;
// size 가장 큰 인덱스 찾기
for (int i = 0; i<v.size(); i++){
if (!v[i].empty()) {
if ((int)v[i].size() > max_size) {
max_size = (int)v[i].size();
max_idx = i;
}
}
}
// 해당 인덱스 값을 2차원 벡터에서 제거
for (int i = 0; i < v[max_idx].size(); i++) {
int cur_idx = v[max_idx][i];
// 해당 인덱스 값의 위치 찾아서 제거
for (auto it = v[cur_idx].begin(); it != v[cur_idx].end(); it++) {
if (*it == max_idx) {
v[cur_idx].erase(it);
cnt--;
break;
}
}
}
// 해당 인덱스의 벡터 초기화
v[max_idx].clear();
ans++;
}
cout << ans;
}