#include #include #include #include namespace mp = boost::multiprecision; using Bint = mp::cpp_int; using namespace std; using namespace atcoder; #define rep(i, n) for(int i=0;i<(n);++i) #define rep1(i, n) for(int i=1;i<=(n);i++) #define ll long long using mint = modint998244353; using P = pair; using lb = long double; using T = tuple; #ifdef LOCAL # include # define dbg(...) debug_print::multi_print(#__VA_ARGS__, __VA_ARGS__) #else # define dbg(...) (static_cast(0)) #endif int main() { int q; cin >> q; set v; set> e; set> f; rep(i,q) { vector vs(3); rep(j,3) cin >> vs[j]; rep(j,3) v.emplace(vs[j]); e.emplace(vs[0],vs[1]); e.emplace(vs[0],vs[2]); e.emplace(vs[1],vs[2]); f.emplace(vs[0],vs[1],vs[2]); } cout << v.size() - e.size() + f.size() << endl; return 0; }