/*数据弱,可暴力*/
#include<bits/stdc++.h>
using namespace std;

int main(){
    // 1. 加速输入输出:关闭cin与stdio同步、解除cin和cout的绑定,提升输入效率(应对大长度单词)
    ios::sync_with_stdio(0),cin.tie(0);
    int n;
    cin>>n; // 输入单词的总数量n
    string s[201]; // 定义数组存储n个单词(下标1~n)
    for(int i=1;i<=n;i++){
        cin>>s[i]; // 2. 输入阶段:读取n个单词,存入数组s
    }
   
    // 3. 统计每个单词的出现次数:外层循环遍历“目标单词”(要统计的单词)
    for(int i=1;i<=n;i++){
        int cnt=0; // 初始化计数器:记录目标单词s[i]在所有单词中出现的总次数
       // 4. 内层循环遍历“文本单词”(要在这个单词里查找目标单词)
       for(int j=1;j<=n;j++){
           size_t t=0; // t:当前查找的起始位置(初始从文本单词的第0位开始)
           size_t p=0; // p:存储find函数的返回值(子串的起始位置,或npos)
           // 5. 循环查找:在当前文本单词s[j]中,多次查找目标单词s[i](避免漏检重复子串)
           while(true){
             p = s[j].find(s[i], t); // 从位置t开始,查找s[i]在s[j]中的位置
             if(p == string::npos){ // 若返回npos,说明当前文本单词中已无目标子串,结束查找
                 break;
             }
             cnt++; // 找到一次,计数器+1
             t = p + 1; // 下一次查找的起始位置设为“当前找到位置+1”,避免重复匹配同一位置
           }
       }
        cout<<cnt<<endl; // 6. 输出目标单词s[i]的总出现次数
    }
    return 0;
}