- const   fi=''; 
-         nmax=999999; 
- type    data=longint; 
- var 
-         f:text; 
-         kq,S,A,tmp:string; 
-         n,sl,i:data; 
-         dd:array[1..6] of boolean; 
-   
- procedure sort(l,r: longint); 
-       var 
-          i,j: longint; 
-          y,x:char; 
-       begin 
-          i:=l; 
-          j:=r; 
-          x:=s[(l+r) div 2]; 
-          repeat 
-            while s[i]<x do 
-             inc(i); 
-            while x<s[j] do 
-             dec(j); 
-            if not(i>j) then 
-              begin 
-                 y:=s[i]; 
-                 s[i]:=s[j]; 
-                 s[j]:=y; 
-                 inc(i); 
-                 j:=j-1; 
-              end; 
-          until i>j; 
-          if l<j then 
-            sort(l,j); 
-          if i<r then 
-            sort(i,r); 
-       end; 
-   
-   
- procedure try; 
- var     i:data; 
- begin 
-         if sl=n then 
-                 begin 
-                         if kq>a then 
-                                 begin 
-                                         writeln(kq); 
-                                         halt; 
-                                 end; 
-   
-                 end 
-         else 
-                 for i:=1 to n do 
-                         if not dd[i] then 
-                                 begin 
-                                         inc(sl); 
-                                         dd[i]:=true; 
-                                         kq[sl]:=s[i]; 
-                                         try; 
-                                         dd[i]:=false; 
-                                         dec(sl); 
-                                 end; 
- end; 
-   
- begin 
-         assign(f,fi); reset(f); 
-         readln(f,s); 
-         close(f); 
-         n:=length(s); 
-         a:=s; 
-         kq:=s; 
-         sort(1,n); 
-         for i:=n downto 1 do 
-   
-                 tmp:=tmp+s[i]; 
-         if tmp=a then 
-                 begin 
-                         writeln(0); 
-                         halt; 
-                 end; 
-         fillchar(dd,sizeof(dd),false); 
-         sl:=0; 
-   
-         try; 
-         writeln(0); 
- end. 
				Y29uc3QgICBmaT0nJzsKICAgICAgICBubWF4PTk5OTk5OTsKdHlwZSAgICBkYXRhPWxvbmdpbnQ7CnZhcgogICAgICAgIGY6dGV4dDsKICAgICAgICBrcSxTLEEsdG1wOnN0cmluZzsKICAgICAgICBuLHNsLGk6ZGF0YTsKICAgICAgICBkZDphcnJheVsxLi42XSBvZiBib29sZWFuOwogCnByb2NlZHVyZSBzb3J0KGwscjogbG9uZ2ludCk7CiAgICAgIHZhcgogICAgICAgICBpLGo6IGxvbmdpbnQ7CiAgICAgICAgIHkseDpjaGFyOwogICAgICBiZWdpbgogICAgICAgICBpOj1sOwogICAgICAgICBqOj1yOwogICAgICAgICB4Oj1zWyhsK3IpIGRpdiAyXTsKICAgICAgICAgcmVwZWF0CiAgICAgICAgICAgd2hpbGUgc1tpXTx4IGRvCiAgICAgICAgICAgIGluYyhpKTsKICAgICAgICAgICB3aGlsZSB4PHNbal0gZG8KICAgICAgICAgICAgZGVjKGopOwogICAgICAgICAgIGlmIG5vdChpPmopIHRoZW4KICAgICAgICAgICAgIGJlZ2luCiAgICAgICAgICAgICAgICB5Oj1zW2ldOwogICAgICAgICAgICAgICAgc1tpXTo9c1tqXTsKICAgICAgICAgICAgICAgIHNbal06PXk7CiAgICAgICAgICAgICAgICBpbmMoaSk7CiAgICAgICAgICAgICAgICBqOj1qLTE7CiAgICAgICAgICAgICBlbmQ7CiAgICAgICAgIHVudGlsIGk+ajsKICAgICAgICAgaWYgbDxqIHRoZW4KICAgICAgICAgICBzb3J0KGwsaik7CiAgICAgICAgIGlmIGk8ciB0aGVuCiAgICAgICAgICAgc29ydChpLHIpOwogICAgICBlbmQ7CiAKIApwcm9jZWR1cmUgdHJ5Owp2YXIgICAgIGk6ZGF0YTsKYmVnaW4KICAgICAgICBpZiBzbD1uIHRoZW4KICAgICAgICAgICAgICAgIGJlZ2luCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIGtxPmEgdGhlbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJlZ2luCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZWxuKGtxKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbHQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kOwogCiAgICAgICAgICAgICAgICBlbmQKICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICBmb3IgaTo9MSB0byBuIGRvCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBkZFtpXSB0aGVuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVnaW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluYyhzbCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZFtpXTo9dHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtxW3NsXTo9c1tpXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRkW2ldOj1mYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlYyhzbCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kOwplbmQ7CiAKYmVnaW4KICAgICAgICBhc3NpZ24oZixmaSk7IHJlc2V0KGYpOwogICAgICAgIHJlYWRsbihmLHMpOwogICAgICAgIGNsb3NlKGYpOwogICAgICAgIG46PWxlbmd0aChzKTsKICAgICAgICBhOj1zOwogICAgICAgIGtxOj1zOwogICAgICAgIHNvcnQoMSxuKTsKICAgICAgICBmb3IgaTo9biBkb3dudG8gMSBkbwogCiAgICAgICAgICAgICAgICB0bXA6PXRtcCtzW2ldOwogICAgICAgIGlmIHRtcD1hIHRoZW4KICAgICAgICAgICAgICAgIGJlZ2luCiAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlbG4oMCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGhhbHQ7CiAgICAgICAgICAgICAgICBlbmQ7CiAgICAgICAgZmlsbGNoYXIoZGQsc2l6ZW9mKGRkKSxmYWxzZSk7CiAgICAgICAgc2w6PTA7CiAKICAgICAgICB0cnk7CiAgICAgICAgd3JpdGVsbigwKTsKZW5kLg==