#include <iostream>
#include <cstring>

using namespace std;

const int MAX_LENGTH = 101;

int main() {
    char s[MAX_LENGTH];
    cin >> s;
    char maxS[MAX_LENGTH];
    strcpy(maxS, s);
    int size = strlen(s);
    int start = size - 1;
    bool found = false;
    for(int i = 0; i < size and !found; i++){
        for(int j = i; j < size; j++){
            if(s[j] > s[i]){
                start = i;
                found = true;
                break;
            }
        }
    }
    for(int j = start + 1; j < size; j++){
        if(s[j] >= s[start]) {
            char curMax[MAX_LENGTH];
            strcpy(curMax, s);
            for (int k = j; k < size; k++) {
                char temp = s[k];
                for(int i = k; i >  start + k - j; i--){
                    curMax[i] = curMax[i - 1];
                }
                curMax[start + k - j] = temp;
                if(strncmp(curMax, maxS, size) > 0){
                    strcpy(maxS, curMax);
                }
            }
        }
    }
    cout << maxS;
    return 0;
}