#include <bits/stdc++.h>
using namespace std;
int n;
int e[27][27];
string s[101];
bool visited[27];
int getID(char c)
{
if(c == ' ') return 0;
return c - 'a' + 1;
}
int MAIN()
{
memset(e, 0, sizeof(e));
for(int i = 1; i <= 26; i++)
e[0][i] = true;
cin >> n;
for(int i = 1; i <= n; i++)
{
cin >> s[i];
s[i] += " ";
}
for(int i = 1; i < n; i++)
{
int pos = 0;
while(s[i][pos] == s[i+1][pos]) pos ++;
e[getID(s[i][pos])][getID(s[i+1][pos])] = true;
}
for(int k = 0; k <= 26; k++)
for(int i = 0; i <= 26; i++)
for(int j = 0; j <= 26; j++)
e[i][j] |= e[i][k] & e[k][j];
bool haveCycle = false;
for(int i = 0; i <= 26; i++)
haveCycle |= e[i][i];
if(haveCycle)
cout << "Impossible" << endl;
else
{
memset(visited, 0, sizeof(visited));
for(int i = 0; i <= 26; i++)
{
int now = 0;
for(int j = 0; j <= 26; j++)
{
bool valid = (!visited[j]);
for(int k = 0; k <= 26; k++)
if(visited[k] == false && e[k][j])
valid = false;
if(valid)
{
now = j;
break;
}
}
if(i > 0)
cout << char('a' + now - 1);
visited[now] = true;
}
cout << endl;
}
return 0;
}
int main()
{
#ifdef LOCAL_TEST
freopen("in.txt", "r", stdin);
freopen("out.txt", "w", stdout);
#endif
ios :: sync_with_stdio(false);
cout << fixed << setprecision(16);
return MAIN();
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbjsKaW50IGVbMjddWzI3XTsKc3RyaW5nIHNbMTAxXTsKYm9vbCB2aXNpdGVkWzI3XTsKCmludCBnZXRJRChjaGFyIGMpCnsKCWlmKGMgPT0gJyAnKSByZXR1cm4gMDsKCXJldHVybiBjIC0gJ2EnICsgMTsKfQoKaW50IE1BSU4oKQp7CgltZW1zZXQoZSwgMCwgc2l6ZW9mKGUpKTsKCWZvcihpbnQgaSA9IDE7IGkgPD0gMjY7IGkrKykKCQllWzBdW2ldID0gdHJ1ZTsKCWNpbiA+PiBuOwoJZm9yKGludCBpID0gMTsgaSA8PSBuOyBpKyspCgl7CgkJY2luID4+IHNbaV07CgkJc1tpXSArPSAiICI7Cgl9Cglmb3IoaW50IGkgPSAxOyBpIDwgbjsgaSsrKQoJewoJCWludCBwb3MgPSAwOwoJCXdoaWxlKHNbaV1bcG9zXSA9PSBzW2krMV1bcG9zXSkgcG9zICsrOwoJCWVbZ2V0SUQoc1tpXVtwb3NdKV1bZ2V0SUQoc1tpKzFdW3Bvc10pXSA9IHRydWU7Cgl9Cglmb3IoaW50IGsgPSAwOyBrIDw9IDI2OyBrKyspCgkJZm9yKGludCBpID0gMDsgaSA8PSAyNjsgaSsrKQoJCQlmb3IoaW50IGogPSAwOyBqIDw9IDI2OyBqKyspCgkJCQllW2ldW2pdIHw9IGVbaV1ba10gJiBlW2tdW2pdOwoJYm9vbCBoYXZlQ3ljbGUgPSBmYWxzZTsKCWZvcihpbnQgaSA9IDA7IGkgPD0gMjY7IGkrKykKCQloYXZlQ3ljbGUgfD0gZVtpXVtpXTsKCWlmKGhhdmVDeWNsZSkKCQljb3V0IDw8ICJJbXBvc3NpYmxlIiA8PCBlbmRsOwoJZWxzZQoJewoJCW1lbXNldCh2aXNpdGVkLCAwLCBzaXplb2YodmlzaXRlZCkpOwoJCWZvcihpbnQgaSA9IDA7IGkgPD0gMjY7IGkrKykKCQl7CgkJCWludCBub3cgPSAwOwoJCQlmb3IoaW50IGogPSAwOyBqIDw9IDI2OyBqKyspCgkJCXsKCQkJCWJvb2wgdmFsaWQgPSAoIXZpc2l0ZWRbal0pOwoJCQkJZm9yKGludCBrID0gMDsgayA8PSAyNjsgaysrKQoJCQkJCWlmKHZpc2l0ZWRba10gPT0gZmFsc2UgJiYgZVtrXVtqXSkKCQkJCQkJdmFsaWQgPSBmYWxzZTsKCQkJCWlmKHZhbGlkKQoJCQkJewoJCQkJCW5vdyA9IGo7CgkJCQkJYnJlYWs7CgkJCQl9CgkJCX0KCQkJaWYoaSA+IDApCgkJCQljb3V0IDw8IGNoYXIoJ2EnICsgbm93IC0gMSk7CgkJCXZpc2l0ZWRbbm93XSA9IHRydWU7CgkJfQoJCWNvdXQgPDwgZW5kbDsKCX0KCXJldHVybiAwOwp9CgppbnQgbWFpbigpCnsKCSNpZmRlZiBMT0NBTF9URVNUCgkJZnJlb3BlbigiaW4udHh0IiwgInIiLCBzdGRpbik7CgkJZnJlb3Blbigib3V0LnR4dCIsICJ3Iiwgc3Rkb3V0KTsKCSNlbmRpZgoJaW9zIDo6IHN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7Cgljb3V0IDw8IGZpeGVkIDw8IHNldHByZWNpc2lvbigxNik7CglyZXR1cm4gTUFJTigpOwp9Cg==