#include<iostream>#include<cstdio>#include<string>#include<cstring>#include<algorithm>usingnamespace std;constint N =1e6+10;int n;char s[N];int tr[N][26], f[N], idx;int ne[N], q[N];int id[210];voidinsert(int x){
int p =0;for(int i =0; s[i]; i++){
int u = s[i]-'a';if(!tr[p][u]) tr[p][u]=++idx;
p = tr[p][u];
f[p]++;}
id[x]= p;}voidbuild(){
int hh =0, tt =-1;for(int i =0; i <26; i++){
if(tr[0][i]) q[++tt]= tr[0][i];}while(hh <= tt){
int t = q[hh++];for(int i =0; i <26; i++){
int p = tr[t][i];if(!p) tr[t][i]= tr[ne[t]][i];else{
ne[p]= tr[ne[t]][i];
q[++tt]= p;}}}}intmain(){
cin >> n;for(int i =1; i <= n; i++){
cin >> s;insert(i);}build();for(int i = idx -1; i >=0; i--){
f[ne[q[i]]]+= f[q[i]];}for(int i =1; i <= n; i++){
cout << f[id[i]]<< endl;}return0;}