#include #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 _CRT_SECURE_NO_WARNINGS #define REP(i, n) for(int i=0; i<(n); i++) #define FOR(i, m, n) for(int i=(m);i<(n);i++) #define SZ(x) ((int)(x).size()) #define ALL(x) (x).begin(),(x).end() #define SORT(x) sort((x).begin(),(x).end()) #define REVE(x) reverse((x).begin(),(x).end()) #define MP make_pair #define PB push_back typedef vector VI; typedef vector VS; typedef vector> VVI; typedef pair PII; typedef long long LL; int main(){ int n; cin >> n; VI a, c; REP(i, n) { int x, y, z; cin >> x >> y >> z; a.PB(x); a.PB(y); a.PB(z); } SORT(a); int i = 0, ans = 0; while (i < n * 3) { int elem = a[i], cnt = 0; while (i < n * 3 && a[i] == elem) { cnt++; i++; } //cout << elem << "は" << cnt << "個\n"; c.PB(cnt); } REP(i, SZ(c)) { //cout << "c[" << i << "]=" << c[i] << endl; ans += c[i] / 2; c[i] %= 2; } ans += accumulate(ALL(c), 0) / 4; cout << ans << endl; }