/*
TASK:names
LANG:C++
*/
#include <stdio.h>
#include <string.h>
#define maxlen 2000020

char best[ maxlen ];
char s[ maxlen ];
int n;

bool less(int ind) {
     int sind(0);
     for(int i=ind;i<n;i++) {
             if(best[sind] != s[i]) return best[sind] > s[i];
             sind++;
     }
     for(int i=0;i<ind;i++) {
             if(best[sind] != s[i]) return best[sind] > s[i];
             sind++;
     }
     return false;
}

void save(int ind) {
     int sind(0);
     for(int i=ind;i<n;i++) best[sind++] = s[i];
     for(int i=0;i<ind;i++) best[sind++] = s[i];
}

bool l1(int a,int b) {
     int sind(0);
     for(int i=0;i<a;i++) {
             if(best[sind] != s[i]) return best[sind] > s[i];
             sind++;
     }
     for(int i=b;i<n;i++) {
             if(best[sind] != s[i]) return best[sind] > s[i];
             sind++;
     }
     for(int i=a;i<b;i++) {
             if(best[sind] != s[i]) return best[sind] > s[i];
             sind++;
     }
     return false;
}

void s1(int a,int b) {
     int sind(0);
     for(int i=0;i<a;i++) best[sind++] = s[i];
     for(int i=b;i<n;i++) best[sind++] = s[i];
     for(int i=a;i<b;i++) best[sind++] = s[i];
}

bool l2(int a,int b) {
     int sind(0);
     
     for(int i=a;i<b;i++) {
             if(best[sind] != s[i]) return best[sind] > s[i];
             sind++;
     }
     for(int i=0;i<a;i++) {
             if(best[sind] != s[i]) return best[sind] > s[i];
             sind++;
     }
     for(int i=b;i<n;i++) {
             if(best[sind] != s[i]) return best[sind] > s[i];
             sind++;
     }
     return false;
}

void s2(int a,int b) {
     int sind(0);
     for(int i=a;i<b;i++) best[sind++] = s[i];
     for(int i=0;i<a;i++) best[sind++] = s[i];
     for(int i=b;i<n;i++) best[sind++] = s[i];
}

int main() {
    while(scanf("%s",&s) == 1) {
       strcpy(best, s);
       n = strlen(s);
       
       for(int i=1;i<n;i++) {
          if(less(i)) save(i);
          
          for(int j=i+1;j<n;j++) {
                  if(l1(i,j)) s1(i,j);
                  if(l2(i,j)) s2(i,j);
          }
       }
       printf("%s\n",best);
    }
    return 0;
}
