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

#include <bits/stdc++.h>
using namespace std;
const long long dx[4] = {-1, 0, 1, 0};
const long long dy[4] = {0, -1, 0, 1};
const long long dxx[] = {1, 1, 0, -1, -1, -1, 0, 1};
const long long dyy[] = {0, 1, 1, 1, 0, -1, -1, -1};
void err(istream_iterator<string> it) {}
template <typename T, typename... Args>
void err(istream_iterator<string> it, T a, Args... args) {
  cerr << *it << " = " << a << "\n";
  err(++it, args...);
}
long long gcd(long long a, long long b) {
  if (!b) return a;
  return gcd(b, a % b);
}
long long lcm(long long a, long long b) { return (a * b) / gcd(a, b); }
long long modexpo(long long x, long long n, long long M) {
  if (n == 0)
    return 1;
  else if (n % 2 == 0)
    return modexpo((x * x) % M, n / 2, M);
  else
    return (x * modexpo((x * x) % M, (n - 1) / 2, M)) % M;
}
long long bexpo(long long x, long long n) {
  if (n == 0)
    return 1;
  else if (n % 2 == 0)
    return bexpo(x * x, n / 2);
  else
    return x * bexpo(x * x, (n - 1) / 2);
}
bool isPrime(long long n) {
  if (n <= 1) return false;
  if (n <= 3) return true;
  if (n % 2 == 0 || n % 3 == 0) return false;
  for (long long i = 5; i * i <= n; i = i + 6)
    if (n % i == 0 || n % (i + 2) == 0) return false;
  return true;
}
const long long mod = 1e9 + 7;
const long long N = 4e5 + 5;
const long long INF = 1e18;
void solve() {
  long long n;
  cin >> n;
  ;
  std::vector<string> v(n);
  for (auto &i : v) cin >> i;
  ;
  map<char, long long> mp;
  for (auto i : v) {
    for (long long j = 0; j < i.size(); j++) {
      mp[i[j]]++;
    }
  }
  for (char c = 'a'; c <= 'z'; c++) {
    if (!mp[c]) {
      cout << c << "\n";
      return;
    }
  }
  map<pair<char, char>, long long> mp2;
  for (auto i : v) {
    if (i.size() > 1) {
      for (long long j = 1; j < i.size(); j++) {
        mp2[{i[j - 1], i[j]}]++;
      }
    }
  }
  for (char c = 'a'; c <= 'z'; c++) {
    for (char h = 'a'; h <= 'z'; h++) {
      if (!mp2[{c, h}]) {
        cout << c << h << "\n";
        return;
      }
    }
  }
}
int32_t main() {
  long long t;
  t = 1;
  while (t--) {
    solve();
  }
}
