#!/usr/bin/env python3
n = int(input())
ss = [input() for _ in range(n)]
l = [[] for _ in range(26)]

for i in range(n - 1):
    a = ss[i]
    b = ss[i + 1]
    if a == b:
        continue
    j = 0
    while True:
        if j == len(a):
            break
        if j == len(b):
            print("impossible")
            exit()
        if a[j] != b[j]:
            l[ord(a[j]) - ord("a")].append(ord(b[j]) - ord("a"))
            break
        j += 1

# DFS
visited = [0] * 26
ans = ""


def dfs(i):
    global ans, visited
    if visited[i] == 2:
        return
    if visited[i] == 1:
        print("impossible")
        exit()
    visited[i] = 1
    for j in l[i]:
        dfs(j)
    ans += chr(i + ord("a"))
    visited[i] = 2


for i in range(26):
    dfs(i)
ans = ans[::-1]
print(ans)
