import sys names = [(i.strip(), 1, "") for i in sys.stdin] for i, name in enumerate(names): for j in xrange(i+1, len(names)): if name[0] in names[j][0]: names[j] = (names[j][0], name[1]+1, name[0]) longest = 0 backlink = {} for name, size, back in names: backlink[name] = back longest = max(longest, size) def chain(seed): if not backlink[seed]: return seed return chain(backlink[seed]) + " -> " + seed solution = [] for name, size, back in names: if size == longest: solution += [chain(name)] solution.sort() print "\n".join(solution)