void add(ll x) { while (x <= n) { t[x]++; x += x & -x; } }
ll query(ll x) { ll sum = 0; while (x) { sum += t[x]; x -= x & -x; } return sum; }
int main() { cin >> n; for (ll i = 1; i <= n; i++) cin >> q[i].a >> q[i].b >> q[i].c; sort(q + 1, q + n + 1, cmpa); for (ll i = 1; i <= n; i++) { add(q[i].b); res += i - query(q[i].b); } memset(t, 0, sizeof(t)); for (ll i = 1; i <= n; i++) { add(q[i].c); res += i - query(q[i].c); } sort(q + 1, q + n + 1, cmpb); memset(t, 0, sizeof(t)); for (ll i = 1; i <= n; i++) { add(q[i].c); res += i - query(q[i].c); } cout << res / 2 << '\n'; return0; }