3
rjnflsbpxqivrcdjptj
vpojopbwbwbswdu
rydkiwnugwddcgcrng
 1
z
 30
b
u
p
n
f
m
t
i
j
k
p
h
a
c
w
z
z
p
t
d
o
w
u
q
l
y
i
o
a
u
 5
splt
ohqykk
xqpz
knojbur
pmfm
 2
hk
obsp
 5
zzxpfk
abcdefghijklmnopqrst
uvwxz
srgkjaskldfkln
vgnsdfdgfh
 2
rxscdzkkezud
wjehahqgouqvjienq
 5
ojdfhi
abcdefghijklmnopqrst
uvwxyz
ddfhdfhlasjt
qqq
 1
epkotfpkkrhhmuipmtdk
 10
kpmwcdoysw
gtpr
kuzoxmiixxbl
crgqtuo
jhbplhpklrgwnaugdf
zuxdaat
aycv
qwghrkqwkobrgevsjrk
tdxgc
lxyzgcmbzulcst
 5
dfijdfhi
abcdefghijklmnopqrst
uvwxy
kopsdfgiopjipw
jty
 2
xlaxwpjabtpwddc
txwdjmohrrszorrnomc
 1
a
 30
waiphwcqrrinr
o
qiqehzmgsjdoqd
kjexeesevrlowxhghq
judikhzkj
z
xo
lsdzypkfqro
sshgcxsky
gecntpcmoojfwp
svmytmcfhc
jrsrvsvbaiumlmkptn
s
wpcsovfjlyspviflk
ktvyzvddgllht
szahigtmklglrcocbo
znligfxkgxzkcfeu
liryvzmqwhr
xgrxkgiehxztv
etrjxdczppafly
jrdgajschhwsci
doxnxbjwptnimjmsuijx
zciwkbvrhgsjhrr
ehh
bzlnmd
xpbtbpftimnn
khbknqbvdkdd
mldj
skrvnyz
avptgpjmenfzfxwckmt
 30
e
x
itaubd
xcn
v
x
i
ci
aqs
zbi
q
cvdu
a
jos
qy
fjf
nayke
ge
s
q
qwad
gvz
o
ubn
nzoc
h
wnjwjrf
t
bq
bw
 1
b

a
 a
 e
 a
 a
 y
 b
 aa
 a
 ab
 z
 e
 b
 aa
 l
 a

import java.util.*;
import java.io.*;
import java.lang.*;

public class Main {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String line;
        
        int n;
        line = br.readLine();
        n = Integer.parseInt(line);
        String arr[] = new String[n];
        for(int c = 0; c < n; c++)
            arr[c] = br.readLine();
        int inds[] = new int[n];
        Arrays.fill(inds, 0);
        while(true) {
            boolean pwede[] = new boolean[26];
            Arrays.fill(pwede, true);
            for(int c = 0; c < n; c++) {
                for(int d = inds[c]; d < arr[c].length(); d++) {
                    int kar = arr[c].charAt(d);
                    pwede[kar-'a'] = false;
                }
            }
            int haha = 0;
            for(; haha < 26 && !pwede[haha]; haha++);
            if(haha == 26) {
                System.out.print("a");
                for(int c = 0; c < n; c++) {
                    int moveon;
                    for(moveon = inds[c]; moveon < arr[c].length(); moveon++) {
                        if(arr[c].charAt(moveon) == 'a') {inds[c] = moveon+1; break;}
                    }
                    if(moveon == arr[c].length()) inds[c] = moveon;
                }
            }
            else { char kk = (char)(haha+'a'); System.out.print(kk+""); break; }
        }
        System.out.println();
    }
}

/*import java.util.*;
import java.io.*;
import java.lang.*;

public class Main {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder ans = new StringBuilder();
        String line;
        int v, e, cnt = 1;
        boolean first = true;
        while(true) {
            line = br.readLine();
            String ss[] = line.trim().split("\\s+");
            v = Integer.parseInt(ss[0]);
            e = Integer.parseInt(ss[1]);
            if(v == 0 && e == 0) {System.out.print(ans); return;}
            if(!first) ans.append("\n");
            first = false;
            ans.append("Calling circles for data set "+cnt+":\n");
            cnt++;
            LL adj[] = new LL[v];
            for(int c = 0; c < v; c++)
                adj[c] = new LL();
            HashMap<Integer, String> rmap = new HashMap<Integer, String>();
            HashMap<String, Integer> map = new HashMap<String, Integer>();
            int ind = 0;
            for(int c = 0; c < e; c++) {
                line = br.readLine();
                ss = line.trim().split("\\s+");
                if(!map.containsKey(ss[0])) { map.put(ss[0], ind); rmap.put(ind++, ss[0]); }
                if(!map.containsKey(ss[1])) { map.put(ss[1], ind); rmap.put(ind++, ss[1]); }
                adj[map.get(ss[0])].add(map.get(ss[1]));
            }
            int where = 0;
            int rev[] = new int[v];
            int glue[] = new int[v];
            boolean vis[] = new boolean[v];
            
            Arrays.fill(vis, false);
            LL stak = new LL();
            stak.addLast(0);
            vis[0] = true;
            while(!stak.isEmpty()) {
                int i = stak.peekLast();
                boolean nomore = true;
                for(int c = 0; c < adj[i].size(); c++) {
                    int t = adj[i].get(c);
                    if(!vis[t]) { nomore = false; stak.addLast(t); vis[t] = true; break;}
                }
                if(nomore) {
                    int rem = stak.removeLast();
                    rev[where++] = rem;
                }
            }

            LL revadj[] = new LL[v];
            for(int c = 0; c < v; c++)
                revadj[c] = new LL();
            for(int c = 0; c < v; c++) {
                for(int d = 0; d < adj[c].size(); d++) {
                    int t = adj[c].get(d);
                    revadj[t].add(c);
                }
            }
            Arrays.fill(vis, false);
            for(int c = v-1; c >= 0; c--) {
                int in = 0;
                if(!vis[rev[c]]) {
                    stak.add(rev[c]);
                    while(!stak.isEmpty()) {
                        int p = stak.poll();
                        if(!vis[p]) {
                            vis[p] = true;
                            glue[in++] = p;
                            stak.addAll(revadj[p]);
                        }
                    }
                    for(int d = 0; d < in; d++) {
                        ans.append(rmap.get(glue[d]));
                        if(d < in-1) ans.append(", ");
                    }
                    ans.append("\n");
                }
            }
        }
    }
    
    static class LL extends LinkedList<Integer> {};
}
*/