#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define rep(i, n) for (int i = 0; i < (int)(n); ++i) #define show(x) cout << #x << " = " << x << endl; using namespace std; using ll = long long; using pii = pair; int main(){ int n; cin >> n; vector>v; rep(i,n){ vectora(3); rep(j,3)cin >> a[j]; sort(a.begin(),a.end()); v.push_back(a); } sort(v.begin(),v.end()); vectordp(n,1); rep(i,n){ for(int j = i+1; j < n; j++){ bool flag = true; rep(k,3){ if(v[i][k] >= v[j][k])flag = false; } if(flag){ dp[j] = max(dp[j],dp[i] + 1); } } } cout << *max_element(dp.begin(),dp.end()) << endl; }