#include <iostream>
#include <vector>
#include <math.h>
#include <algorithm>
using namespace std;
bool ij(vector<int> i, vector<int> j) {
int a = i.size();
int b = j.size();
int c = max(a,b)-min(a,b);
double ans1 = 1.0;
double ans2 = 1.0;
if(a>b) {
for(int it = 1; it <= c+1; it++) {
ans1 = pow((double)i[a-it], ans1);
}
ans2 = (double)j[b-1];
} else if(b>a) {
for(int it = 1; it <= c+1; it++) {
ans2 = pow((double)j[b-it], ans2);
}
ans1 = (double)i[a-1];
} else {
ans1 = (double)i[a-1];
ans2 = (double)j[b-1];
}
c = min(a,b);
double da, db;
for(int it = 2; it <= c; it++) {
da = log2((double)i[c-it])*ans1;
db = log2((double)j[c-it])*ans2;
if(da>db) {
ans1=pow(2,da-db);
ans2=1.0;
} else if(da<db) {
ans2=pow(2,db-da);
ans1=1.0;
}
}
return ans1<ans2;
}
int main()
{
int n;
cin >> n;
int k, t;
vector<int> vt(10);
bool bo;
vector<vector<int> > vc(n,vt);
for(int i = 0; i < n; i++) {
cin >> k;
bo = true;
k++;
vc[i].reserve(k);
for(int j = 0;j < k; j++) {
cin >> t;
if(t==1) {
bo = false;
if(j==0) {
vc[i].push_back(1);
}
} else if(bo) {
vc[i].push_back(t);
}
}
}
vector<vector<int> > hu = vc;
sort(vc.begin(), vc.end(), ij);
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
if(vc[i]==hu[j]) {
cout << j+1 << " ";
break;
}
}
}
cin >> n;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8bWF0aC5oPgojaW5jbHVkZSA8YWxnb3JpdGhtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKYm9vbCBpaih2ZWN0b3I8aW50PiBpLCB2ZWN0b3I8aW50PiBqKSB7CiAgICBpbnQgYSA9IGkuc2l6ZSgpOwogICAgaW50IGIgPSBqLnNpemUoKTsKICAgIGludCBjID0gbWF4KGEsYiktbWluKGEsYik7CiAgICBkb3VibGUgYW5zMSA9IDEuMDsKICAgIGRvdWJsZSBhbnMyID0gMS4wOwogICAgaWYoYT5iKSB7CiAgICAgICAgZm9yKGludCBpdCA9IDE7IGl0IDw9IGMrMTsgaXQrKykgewogICAgICAgICAgICBhbnMxID0gcG93KChkb3VibGUpaVthLWl0XSwgYW5zMSk7CiAgICAgICAgfQogICAgICAgIGFuczIgPSAoZG91YmxlKWpbYi0xXTsKICAgIH0gZWxzZSBpZihiPmEpIHsKICAgICAgICBmb3IoaW50IGl0ID0gMTsgaXQgPD0gYysxOyBpdCsrKSB7CiAgICAgICAgICAgIGFuczIgPSBwb3coKGRvdWJsZSlqW2ItaXRdLCBhbnMyKTsKICAgICAgICB9CiAgICAgICAgYW5zMSA9IChkb3VibGUpaVthLTFdOwogICAgfSBlbHNlIHsKICAgICAgICBhbnMxID0gKGRvdWJsZSlpW2EtMV07CiAgICAgICAgYW5zMiA9IChkb3VibGUpaltiLTFdOwogICAgfQogICAgYyA9IG1pbihhLGIpOwogICAgZG91YmxlIGRhLCBkYjsKICAgIGZvcihpbnQgaXQgPSAyOyBpdCA8PSBjOyBpdCsrKSB7CiAgICAgICAgZGEgPSBsb2cyKChkb3VibGUpaVtjLWl0XSkqYW5zMTsKICAgICAgICBkYiA9IGxvZzIoKGRvdWJsZSlqW2MtaXRdKSphbnMyOwogICAgICAgIGlmKGRhPmRiKSB7CiAgICAgICAgICAgIGFuczE9cG93KDIsZGEtZGIpOwogICAgICAgICAgICBhbnMyPTEuMDsKICAgICAgICB9IGVsc2UgaWYoZGE8ZGIpIHsKICAgICAgICAgICAgYW5zMj1wb3coMixkYi1kYSk7CiAgICAgICAgICAgIGFuczE9MS4wOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBhbnMxPGFuczI7Cn0KCmludCBtYWluKCkKewogICAgaW50IG47CiAgICBjaW4gPj4gbjsKICAgIGludCBrLCB0OwogICAgdmVjdG9yPGludD4gdnQoMTApOwogICAgYm9vbCBibzsKICAgIHZlY3Rvcjx2ZWN0b3I8aW50PiA+IHZjKG4sdnQpOwogICAgZm9yKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgIGNpbiA+PiBrOwogICAgICAgIGJvID0gdHJ1ZTsKICAgICAgICBrKys7CiAgICAgICAgdmNbaV0ucmVzZXJ2ZShrKTsKICAgICAgICBmb3IoaW50IGogPSAwO2ogPCBrOyBqKyspIHsKICAgICAgICAgICAgY2luID4+IHQ7CiAgICAgICAgICAgIGlmKHQ9PTEpIHsKICAgICAgICAgICAgICAgIGJvID0gZmFsc2U7CiAgICAgICAgICAgICAgICBpZihqPT0wKSB7CiAgICAgICAgICAgICAgICAgICAgdmNbaV0ucHVzaF9iYWNrKDEpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgaWYoYm8pIHsKICAgICAgICAgICAgICAgIHZjW2ldLnB1c2hfYmFjayh0KTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHZlY3Rvcjx2ZWN0b3I8aW50PiA+IGh1ID0gdmM7CiAgICBzb3J0KHZjLmJlZ2luKCksIHZjLmVuZCgpLCBpaik7CiAgICBmb3IoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgZm9yKGludCBqID0gMDsgaiA8IG47IGorKykgewogICAgICAgICAgICBpZih2Y1tpXT09aHVbal0pIHsKICAgICAgICAgICAgICAgIGNvdXQgPDwgaisxIDw8ICIgIjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgY2luID4+IG47CiAgICByZXR1cm4gMDsKfQo=