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-----
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-----
Output the best word on a single line.

-----Examples-----
Sample Input 1:
dcbagfekjih
Sample Output 1:
abcdefghijk

Sample Input 2:
mobitel
Sample Output 2:
bometil

Source: kattis | Difficulty: MEDIUM
Tags: Complete search


Solutions: