Problem A

Mario is making up silly games again instead of reading Dostoevsky for school. The rules of his newest game follow. First he chooses a random word from the book. Then he splits the word in two arbitrary places to get three separate words. After that he reverses the order of the letters in each of those three words (exchanges the first and last letters, the second and second last and so on).

Finally, he puts the three words back together in the same order in which they were before splitting. The goal of the game is to obtain the lexicographically smallest word possible. In other words, of all words that can be obtained by the above procedure, find one which would be earliest in a dictionary.

Write a program that plays Mario’s game perfectly.


The first and only line of input contains Mario’s chosen word, a string of lowercase letters of the English alphabet with no spaces.

The input word will be between $3$ and $50$ characters long (inclusive).


Output the best word on a single line.

Sample Input 1 Sample Output 1
Sample Input 2 Sample Output 2
Sample Input 3 Sample Output 3
CPU Time limit 1 second
Memory limit 1024 MB
Statistics Show
Source Croatian Open Competition in Informatics 2007/2008, contest #4
License For educational use only

Please log in to submit a solution to this problem

Log in