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==