/*
TASK: names
LANG: C++
*/

#include <cstdio>
#include <cstring>
using namespace std;

int n;
char S[2000000+5];
char a[2000000+5];
char b[2000000+5];
char c[2000000+5];

char curr[2000000+5];
char ans[2000000+5];

void solve ()
{
	int p, q;
	
	n = strlen (S);
	
	memset (ans,255,sizeof(ans));
	
	for (p=1; p<n; p++)
		for (q=p+1; q<n; q++) {
			memset (a,'\0',sizeof(a));
			memset (b,'\0',sizeof(b));
			memset (c,'\0',sizeof(c));
			
			strncpy (a, S  , p);
			strncpy (b, S+p, q-p);
			strncpy (c, S+q, n-q);
			
			curr[0] = '\0'; sprintf (curr, "%s%s%s", a, b, c); if (strcmp(curr,ans)<0) strcpy(ans,curr);
			curr[0] = '\0'; sprintf (curr, "%s%s%s", a, c, b); if (strcmp(curr,ans)<0) strcpy(ans,curr);
			curr[0] = '\0'; sprintf (curr, "%s%s%s", b, a, c); if (strcmp(curr,ans)<0) strcpy(ans,curr);
			curr[0] = '\0'; sprintf (curr, "%s%s%s", b, c, a); if (strcmp(curr,ans)<0) strcpy(ans,curr);
			curr[0] = '\0'; sprintf (curr, "%s%s%s", c, a, b); if (strcmp(curr,ans)<0) strcpy(ans,curr);
		}
		
	ans[n] = '\0';
		
	printf ("%s\n", ans);
}

int main ()
{
 	while ( scanf("%s", S) != EOF )
	 	solve ();
	 	
    return 0;
}
