#include <bits/stdc++.h>
using namespace std;
const int MAXN = 2505;
struct trie {
int cnt, ch[MAXN][26];
bool vis[MAXN];
int num[MAXN];
void insert(char s[]) {
int len = strlen(s), p = 0;
for (int i = 0; i < len; i++) {
num[p]++;
if (!ch[p][s[i] - 'a']) ch[p][s[i] - 'a'] = ++cnt;
p = ch[p][s[i] - 'a'];
}
num[p]++;
vis[p] = 1;
}
int ask(char s[]) {
int len = strlen(s), p = 0;
for (int i = 0; i < len; i++) {
if (num[p] == 1) return i;
p = ch[p][s[i] - 'a'];
}
return len;
}
} t;
int n;
char s[55][55];
int main() {
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
scanf("%s", s[i]);
t.insert(s[i]);
}
for (int i = 1, tmp; i <= n; i++) {
tmp = t.ask(s[i]);
for (int j = 0; j < tmp; j++) putchar(s[i][j]);
printf("\n");
}
}