program ed;
const maxn=6;
type myarray=array[1..maxn+1] of byte;
var a,last:myarray;
i:integer;
s:string;
function eq(x,y:myarray;
n:integer):boolean;
var i:integer;
begin i:=1;
while (i<=n) and (x[i]=y[i]) do inc(i);
eq:=(i>n);
end;
Begin writeln('stroka');
readln(s);
fillchar(a,sizeof(a),0);
fillchar(last,sizeof(last),0);
last[length(s)+1]:=1;
while not(eq(a,last,(length(s)+1))) do begin i:=1;
while (i<=length(s)) and (a[i]=1) do begin a[i]:=0;
inc(i);
end;
a[i]:=1;
if i<=length(s) then for i:=1 to length(s) do if a[i]=1 then write(s[i]);
writeln;
end;
readln;
End.