fun main() { val data = List(readInt()) { readln() } val before = Array(26) { BooleanArray(26) } for ((l, r) in data.zipWithNext()) { if (l.startsWith(r) && l != r) { println("impossible") return } l.indices.firstOrNull { l[it] != r[it] }?.let { before[l[it].code - 'a'.code][r[it].code - 'a'.code] = true } } val deg = IntArray(26) { v -> before.count { it[v] }} println(buildString { repeat(26) { val v = deg.indexOf(0) if (v == -1) { println("impossible") return } append(('a'.code + v).toChar()) deg[v] = 1000 for (i in deg.indices) { if (before[v][i]) { deg[i]-- } } } }) } private fun readInt() = readln().toInt() private fun readStrings() = readln().split(" ")