def g(s, t): m = [[0] * (len(t) + 1) for _ in range(len(s) + 1)] for i in range(len(s) + 1):m[i][0] = i for j in range(len(t) + 1):m[0][j] = j for i in range(1, len(s) + 1): for j in range(1, len(t) + 1): if s[i - 1] == t[j - 1]: m[i][j] = m[i - 1][j - 1] else: m[i][j] = min ( m[i - 1][j] + 1, # deletion m[i][j - 1] + 1, # insertion m[i - 1][j - 1] + 1 # substitution ) return m[-1][-1] a = raw_input() l = [] try: while 1:l += [raw_input()] except:pass print a for s in sorted(l, key=lambda x:g(a, x)): print s