{
TASK:names
LANG:Pascal
}
var s,a,b,c,min,minsymbol:String;
    i,j:Longint;
    oldway:Boolean;
Begin
  While not EoF do
  Begin
    ReadLn(s);
    min:=s;
   If length(s)>2 then
   Begin
     minsymbol:=s[1];
     oldway:=true;
    For i:=2 to length(s) do
    Begin
     if s[i]=minsymbol then oldway:=false;
     if (s[i]<minsymbol)and(i>0) then minsymbol:=s[i];
    End;
    If not oldway then
    Begin
    For i:=2 to length(s)-1 do
     If s[i]=minsymbol then
    For j:=i+1 to length(s) do
     Begin
       a:=copy(s,1,i-1);
       b:=copy(s,i,j-i);
       c:=copy(s,j,length(s)-j+1);
      If b+a+c<min then min:=b+a+c;
      If b+c+a<min then min:=b+c+a;
      If c+a+b<min then min:=c+a+b;
     End
    End
    else
    For i:=2 to length(s)-1 do
    For j:=i+1 to length(s) do
     Begin
       a:=copy(s,1,i-1);
       b:=copy(s,i,j-i);
       c:=copy(s,j,length(s)-j+1);
      If a+c+b<min then min:=a+c+b;
      If b+a+c<min then min:=b+a+c;
      If b+c+a<min then min:=b+c+a;
      If c+a+b<min then min:=c+a+b;
     End
   End;
    WriteLn(min);
  End;
End.
