C写的
#include <stdio.h>

int main(){
    int n = 0;
    scanf("%d",&n);
    int letters[n][2];
    int dp[n];
    for(int i = 0; i < n; i++){
        scanf("%d %d",&letters[i][0],&letters[i][1]);
        dp[i] = 1;
    }
    for(int i = 1; i < n; i++){
        int cmp = i;
        for(int j = i-1; j >= 0; j--){
            if(letters[cmp][0] > letters[j][0])
                break;
            else if(letters[cmp][0] < letters[j][0]){
                int tmp = letters[cmp][0];
                letters[cmp][0] = letters[j][0];
                letters[j][0] = tmp;
                tmp = letters[cmp][1];
                letters[cmp][1] = letters[j][1];
                letters[j][1] = tmp;
                cmp--;
            }
            else{
                if(letters[cmp][1] >= letters[j][1]){
                    break;
                }
                else{
                    int tmp = letters[cmp][0];
                    letters[cmp][0] = letters[j][0];
                    letters[j][0] = tmp;
                    tmp = letters[cmp][1];
                    letters[cmp][1] = letters[j][1];
                    letters[j][1] = tmp;
                    cmp--;
                }
            }
        }
    }
    int sign = 0;
    for(int i = 1; i < n; i++){
        for(int j = 0;j < i;j++){
            if(letters[i][1] > letters[j][1] && letters[i][0] != letters[j][0]){
                sign = 1;
                dp[i] = dp[i] > dp[j] ? dp[i] : dp[j];
            }
        }
        if(sign == 1){
            dp[i] += 1;
            sign = 0;
        }
    }
    int tmp = 0;
    for(int i = 0; i < n; i++){
        tmp = tmp > dp[i] ? tmp : dp[i];
    }
    printf("%d",tmp);
    return 0;
}