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.
Input Specification
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 and characters long (inclusive).
Output Specification
Output the best word on a single line.
Sample Input 1
dcbagfekjih
Sample Output 1
abcdefghijk
Sample Input 2
mobitel
Sample Output 2
bometil
Sample Input 3
anakonda
Sample Output 3
aanadnok
Comments
Are the three split words allowed to be empty (length 0)?
from my experiment just now, no
also, if that were allowed, the answer to sample 3 would instead be "aadnokan" from reversing "a", "nakonda", and "". so this is not allowed.
this can also be inferred from the fact that the word length is at least 3 characters, which would make sense if each of the 3 words needed to be at least 1 character long