#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:200000000")
using namespace std;
template <typename T>
inline T Abs(T x) {
  return (x >= 0) ? x : -x;
}
template <typename T>
inline T sqr(T x) {
  return x * x;
}
template <typename T>
string toStr(T x) {
  stringstream st;
  st << x;
  string s;
  st >> s;
  return s;
}
inline int nextInt() {
  int x;
  if (scanf("%d", &x) != 1) throw;
  return x;
}
inline long long nextInt64() {
  long long x;
  if (scanf("%I64d", &x) != 1) throw;
  return x;
}
inline double nextDouble() {
  double x;
  if (scanf("%lf", &x) != 1) throw;
  return x;
}
const int INF = (int)1E9;
const long long INF64 = (long long)1E18;
const long double EPS = 1E-9;
const long double PI = 3.1415926535897932384626433832795;
bool cmp(const string &s1, const string &s2) {
  if (s1.size() != s2.size()) return s1.size() < s2.size();
  return s1 < s2;
}
const int MAXN = 100100;
vector<string> a;
string s[MAXN];
int n;
void gen(string s) {
  a.push_back(s);
  if (s.size() == 3) return;
  for (int i = 0; i < (int)(26); i++) gen(s + char(i + 'a'));
}
bool check(string a) {
  for (int i = 0; i < (int)(n); i++)
    if (s[i].find(a) != string::npos) return false;
  return true;
}
int main() {
  n = nextInt();
  for (int i = 0; i < (int)(n); i++) cin >> s[i];
  gen("");
  sort((a).begin(), (a).end(), cmp);
  for (int i = 0; i < (int)(a.size()); i++)
    if (check(a[i])) {
      cout << a[i] << endl;
      return 0;
    }
  throw;
  return 0;
}
