#define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define LONG_INF 10000000000000000 #define MAX_MOD 1000000007 #define REP(i,n) for(long long i = 0;i < n;++i) int dper[2000] = {}; int main() { int n; cin >> n; vector> wow; REP(i, n) { vector b; REP(q, 3) { int a; cin >> a; b.push_back(a); } sort(b.begin(), b.end()); wow.push_back(make_tuple(b[0], b[1], b[2])); } sort(wow.begin(), wow.end()); for (int i = 0;i < n;++i) { int cnt = 0; for (int j = i - 1;j >= 0;--j) { if (get<0>(wow[j]) < get<0>(wow[i]) && get<1>(wow[j]) < get<1>(wow[i]) && get<2>(wow[j]) < get<2>(wow[i]))cnt = max(cnt, dper[j]); } dper[i] = cnt+1; } int ans = 0; for (int i = 0;i < n;++i) { ans = max(ans, dper[i]); } cout << ans << endl; return 0; }