import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
scanner.nextLine();
// 1. 用布尔数组标记第一个字符串的所有字符(初始候选集)
boolean[] hasChar = new boolean[26]; // 对应26个小写字母
String first = scanner.nextLine();
for (char c : first.toCharArray()) {
hasChar[c - 'a'] = true;
}
// 2. 遍历后续所有字符串,逐步缩小候选集(求交集)
for (int i = 1; i < n; i++) {
String s = scanner.nextLine();
boolean[] currHas = new boolean[26];
// 先标记当前字符串含有的字符
for (char c : s.toCharArray()) {
currHas[c - 'a'] = true;
}
// 候选集与当前字符串字符取交集(只保留两者都有的)
for (int j = 0; j < 26; j++) {
hasChar[j] = hasChar[j] && currHas[j];
}
}
// 3. 输出任意一个公共字符(优先输出第一个找到的)
for (int j = 0; j < 26; j++) {
if (hasChar[j]) {
System.out.println((char) (j + 'a'));
return;
}
}
// 无公共字符时输出空
System.out.println("");
}
}