/*
==> Don't stop when you're tired, stop when you're done.
--> @author: MIDORIYA_
*/
//*==============================================================
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef double db;
typedef long double ld;
typedef pair<int, int> pii;
typedef vector<int> vi;
typedef vector<ll> vll;
typedef vector<db> vd;
typedef vector<ld> vld;
typedef vector<bool> vb;
typedef vector<vector<ll>> vvl;
typedef vector<pii> vii;
typedef set<int> si;
typedef set<ll> sl;
#define pb push_back
#define all(x) x.begin(), x.end()
#define rall(x) x.rbegin(), x.rend()
#define endl "\n"
const ll MOD = 1'000'000'007;
#define INF 2'000'000'000
#define time cerr << "Time Taken: " << (float)clock() / CLOCKS_PER_SEC << " Secs" << endl;
//*===================>>>Fast-IO-Functions<<<=================
void fastIO()
{
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
}
//*===================>>>File-IO-Functions<<<=================
void fileIO()
{
#ifndef ONLINE_JUDGE
freopen("in.txt", "r", stdin);
freopen("out.txt", "w", stdout);
#endif
}
//*===================>>>ONE-FOR-ALL-Function<<<==============
void OneForAll() {
int n;
cin >> n;
vector<array<int, 3>> stars(n);
unordered_map<int, int> xCnt, yCnt, zCnt;
for(auto &star : stars)
{
cin >> star[0] >> star[1] >> star[2];
xCnt[star[0]]++;
yCnt[star[1]]++;
zCnt[star[2]]++;
}
for(auto &star : stars)
{
cout << xCnt[star[0]] - 1 << " " << yCnt[star[1]] - 1 << " " << zCnt[star[2]] - 1 << endl;
}
}
int main()
{
fastIO();
fileIO();
ll tc = 1;
// cin >> tc;
while (tc--)
{
OneForAll();
}
time;
return 0;
}
// fibonacci series -> 0 1 1 2 3 5 8 13 21 34 ...
// factorial series -> 1 1 2 6 24 120 720 ...
LyoKPT0+IERvbid0IHN0b3Agd2hlbiB5b3UncmUgdGlyZWQsIHN0b3Agd2hlbiB5b3UncmUgZG9uZS4KLS0+IEBhdXRob3I6IE1JRE9SSVlBXwoqLwovLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdHlwZWRlZiBsb25nIGxvbmcgbGw7CnR5cGVkZWYgZG91YmxlIGRiOwp0eXBlZGVmIGxvbmcgZG91YmxlIGxkOwp0eXBlZGVmIHBhaXI8aW50LCBpbnQ+IHBpaTsKdHlwZWRlZiB2ZWN0b3I8aW50PiB2aTsKdHlwZWRlZiB2ZWN0b3I8bGw+IHZsbDsKdHlwZWRlZiB2ZWN0b3I8ZGI+IHZkOwp0eXBlZGVmIHZlY3RvcjxsZD4gdmxkOwp0eXBlZGVmIHZlY3Rvcjxib29sPiB2YjsKdHlwZWRlZiB2ZWN0b3I8dmVjdG9yPGxsPj4gdnZsOwp0eXBlZGVmIHZlY3RvcjxwaWk+IHZpaTsKdHlwZWRlZiBzZXQ8aW50PiBzaTsKdHlwZWRlZiBzZXQ8bGw+IHNsOwojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIGFsbCh4KSB4LmJlZ2luKCksIHguZW5kKCkKI2RlZmluZSByYWxsKHgpIHgucmJlZ2luKCksIHgucmVuZCgpCiNkZWZpbmUgZW5kbCAiXG4iCmNvbnN0IGxsIE1PRCA9IDEnMDAwJzAwMCcwMDc7CiNkZWZpbmUgSU5GIDInMDAwJzAwMCcwMDAKI2RlZmluZSB0aW1lIGNlcnIgPDwgIlRpbWUgVGFrZW46ICIgPDwgKGZsb2F0KWNsb2NrKCkgLyBDTE9DS1NfUEVSX1NFQyA8PCAiIFNlY3MiIDw8IGVuZGw7Ci8vKj09PT09PT09PT09PT09PT09PT0+Pj5GYXN0LUlPLUZ1bmN0aW9uczw8PD09PT09PT09PT09PT09PT09CnZvaWQgZmFzdElPKCkKewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKG51bGxwdHIpOwogICAgY291dC50aWUobnVsbHB0cik7Cn0KLy8qPT09PT09PT09PT09PT09PT09PT4+PkZpbGUtSU8tRnVuY3Rpb25zPDw8PT09PT09PT09PT09PT09PT0Kdm9pZCBmaWxlSU8oKQp7CiNpZm5kZWYgT05MSU5FX0pVREdFCiAgICBmcmVvcGVuKCJpbi50eHQiLCAiciIsIHN0ZGluKTsKICAgIGZyZW9wZW4oIm91dC50eHQiLCAidyIsIHN0ZG91dCk7CiNlbmRpZgp9Ci8vKj09PT09PT09PT09PT09PT09PT0+Pj5PTkUtRk9SLUFMTC1GdW5jdGlvbjw8PD09PT09PT09PT09PT09CnZvaWQgT25lRm9yQWxsKCkgewoKICAgIGludCBuOwogICAgY2luID4+IG47CiAgICB2ZWN0b3I8YXJyYXk8aW50LCAzPj4gc3RhcnMobik7CiAgICB1bm9yZGVyZWRfbWFwPGludCwgaW50PiB4Q250LCB5Q250LCB6Q250OwoKICAgIGZvcihhdXRvICZzdGFyIDogc3RhcnMpCiAgICB7CiAgICAgICAgY2luID4+IHN0YXJbMF0gPj4gc3RhclsxXSA+PiBzdGFyWzJdOwoKICAgICAgICB4Q250W3N0YXJbMF1dKys7CiAgICAgICAgeUNudFtzdGFyWzFdXSsrOwogICAgICAgIHpDbnRbc3RhclsyXV0rKzsKICAgIH0KCiAgICBmb3IoYXV0byAmc3RhciA6IHN0YXJzKQogICAgewogICAgICAgIGNvdXQgPDwgeENudFtzdGFyWzBdXSAtIDEgPDwgIiAiIDw8IHlDbnRbc3RhclsxXV0gLSAxIDw8ICIgIiA8PCB6Q250W3N0YXJbMl1dIC0gMSA8PCBlbmRsOwogICAgfQp9CgppbnQgbWFpbigpCnsKICAgIGZhc3RJTygpOwogICAgZmlsZUlPKCk7CgogICAgbGwgdGMgPSAxOwogICAgLy8gY2luID4+IHRjOwogICAgd2hpbGUgKHRjLS0pCiAgICB7CiAgICAgICAgT25lRm9yQWxsKCk7CiAgICB9CiAgICB0aW1lOwogICAgcmV0dXJuIDA7Cn0KCi8vIGZpYm9uYWNjaSBzZXJpZXMgLT4gMCAxIDEgMiAzIDUgOCAxMyAyMSAzNCAuLi4KLy8gZmFjdG9yaWFsIHNlcmllcyAtPiAxIDEgMiA2IDI0IDEyMCA3MjAgLi4uCg==