Hide

Problem C
Dyslectionary

Have you ever been uncertain how to spell a word? If you ask someone, they will sometimes just tell you to look it up, and that’s fine if you know how the word starts. However, it’s not much help if you only feel certain about how the word ends. To help give a equal treatment to words that are easy to spell at the end, you have developed the Dyslectionary$^\textrm {TM}$. The Dyslectionary is just like an ordinary dictionary except that it organizes words based on how they end rather than how they start. The first section covers words ending with ‘a’. Within this section words are ordered by their second-to-last letter, and so on. If two words have the same suffix, the shorter word is sorted earlier. To help organize your Dyslectionary, you are developing a simple computer program to harvest words from ordinary dictionaries.

Input

Input contains up to $100$ word groups. Each word group contains up to $100$ words, one word per line, listed in regular dictionary order. All words contain only lowercase English letters a – z. A blank line separates each pair of consecutive groups.

Output

For each group, print out its words in Dyslectionary order, one word per line. Use a blank line to separate consecutive groups. To make words easy to lookup, right-justify them so that they all end at the same column and there is just enough space to fit all the words.

Sample Input 1 Sample Output 1
apple
banana
grape
kiwi
pear

airplane
bicycle
boat
car
banana
 apple
 grape
  kiwi
  pear

 bicycle
airplane
     car
    boat

Please log in to submit a solution to this problem

Log in