#include <bits/stdc++.h>
char S[111][111], *a, *b, R[33];
unsigned D[33][11111], Di[11111], H[11111], Q[11111], Qi;
int main() {
  unsigned t, i = -1, j, k, x, y, l = 0;
  for (scanf("%u", &t); ++i < t; scanf("%s", S[i]))
    ;
  for (i = -1; ++i < t;)
    for (j = i; ++j < t;) {
      for (a = S[i], b = S[j]; *a && *b && *a == *b; ++a, ++b)
        ;
      if (*a && *b)
        ++H[D[*a - 'a'][Di[*a - 'a']++] = *b - 'a'];
      else if (*a && !*b) {
        printf("Impossible\n");
        return 0;
      }
    }
  for (i = 26; i;)
    if (!H[--i]) Q[Qi++] = i;
  while (Qi--) {
    R[l++] = 'a' + (j = Q[Qi]);
    for (k = Di[j], i = -1; ++i < k;)
      if (!--H[x = D[j][i]]) Q[Qi++] = x;
  }
  printf("%s\n", l == 26 ? R : "Impossible");
  return 0;
}
