#include <bits/stdc++.h>
using namespace std;
long long powm(long long base, long long exp, long long mod = 1000000007) {
  long long ans = 1;
  while (exp) {
    if (exp & 1) ans = (ans * base) % mod;
    exp >>= 1, base = (base * base) % mod;
  }
  return ans;
}
void fastscan(int &x) {
  register int c = getchar();
  x = 0;
  for (; (c < 48 || c > 57); c = getchar())
    ;
  for (; c > 47 && c < 58; c = getchar()) {
    x = (x << 1) + (x << 3) + c - 48;
  }
}
const int N = 7e4 + 5;
const int M = 10;
vector<string> data;
long long root, NEW;
struct node {
  long long nxt[10], cnt;
} trie[1000000];
void insert(string str) {
  long long v = root;
  for (int i = 0; i < (str).size(); i++) {
    long long x = str[i] - '0';
    if (trie[v].nxt[x]) {
      v = trie[v].nxt[x];
      trie[v].cnt++;
      continue;
    }
    trie[v].nxt[x] = ++NEW;
    v = trie[v].nxt[x];
    trie[v].cnt++;
  }
}
void go(string str) {
  for (int k = 0; k < (str).size(); k++) {
    insert(str.substr(k, (str).size() - k));
  }
}
long long query(string str) {
  long long v = root, depth = 0;
  for (int i = 0; i < (str).size(); i++) {
    depth++;
    long long x = str[i] - '0';
    if (trie[trie[v].nxt[x]].cnt) {
      v = trie[v].nxt[x];
      continue;
    }
    return depth;
  }
  return 1000111000111000111LL;
}
void del(string str) {
  long long v = root;
  for (int i = 0; i < (str).size(); i++) {
    long long x = str[i] - '0';
    if (trie[v].nxt[x]) {
      v = trie[v].nxt[x];
      trie[v].cnt--;
      continue;
    }
    break;
  }
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  long long n;
  string str;
  cin >> n;
  for (int i = 0; i < n; i++) {
    cin >> str;
    go(str);
    data.push_back(str);
  }
  for (int i = 0; i < n; i++) {
    str = data[i];
    for (int k = 0; k < (str).size(); k++) {
      del(str.substr(k, (str).size() - k));
    }
    string cmp = "9999999999";
    for (int k = 0; k < (str).size(); k++) {
      string y = str.substr(k, (str).size() - k);
      long long tmp = query(y);
      if (tmp == 1000111000111000111LL) continue;
      string z = y.substr(0, tmp);
      if ((z).size() < (cmp).size()) cmp = z;
    }
    go(str);
    cout << cmp << endl;
  }
}
