#include <bits/stdc++.h>
using namespace std;
const int N = 10000;
int ans = 0;
struct gz
{
int l, w;
};
bool temp(gz a, gz b)
{
if (a.l == b.l)
{
return a.w < b.w;
}
return a.l < b.l;
}
int dp[N];
int main()
{
long long n;
cin >> n;
gz gzs[n];
for (int i = 0; i < n; i++)
{
cin >> gzs[i].l >> gzs[i].w;
}
sort(gzs, gzs + n, temp);
dp[0] = 0;
for (int i = 1; i <= n; i++)
{
dp[i] = INT_MAX;
for (int j = i - 1; j >= 0; j--)
{
if (gzs[i - 1].w >= gzs[j].w)
{
dp[i] = min(dp[i], dp[j] + 1);
}
}
ans = max(dp[i], ans);
}
cout << ans << endl;
return 0;
}
也不知道哪有问题