{Name : Ceanga Andrei
School Name : "Dr. I. Mesota"
National College
School Code : 7156
Contest : #3
Division : Senior 3}
program strings;
uses crt;
var i,j,k,p,n,x,er:integer;
s,f,a,s1:string;
d,aux:char;
op:array[1..50] of string[10];
ff:text;
procedure ls(a:string);
begin
val(a,x,er);
for
i:=1 to length(s)-x do
s[i]:=s[x+i];
for
i:=length(s)-x+1 to length(s) do s[i]:='#';
end;
procedure rs(a:string);
begin
val(a,x,er);
for
i:=length(s)-x downto 1 do
s[x+i]:=s[i];
for
i:=1 to x do s[i]:='#';
end;
procedure lc(a:string);
begin
val(a,x,er);
for
i:=1 to x do
begin
s:=s+s[1];
delete(s,1,1);
end;
end;
procedure rc(a:string);
begin
val(a,x,er);
for
i:=1 to x do
begin
s:=s[length(s)]+s;
delete(s,length(s),1);
end;
end;
procedure mc(a:string);
begin
d:=a[4];
delete(a,4,1);
val(a,x,er);
s1:=copy(s,x div 100,(x mod 100) div 10);
if
d='L' then
begin
for i:=1 to x mod 10 do
begin
s1:=s1+s1[1];
delete(s1,1,1);
end;
end;
if
d='R' then
begin
for i:=1 to x mod 10 do
begin
s1:=s1[length(s1)]+s1;
delete(s1,length(s1),1);
end;
end;
for
i:=1 to (x mod 100) div 10 do
s[i+x div 100 - 1]:=s1[i];
end;
procedure rev(a:string);
begin
val(a,x,er);
s1:=copy(s,x div 10,x mod 10);
for
i:=1 to x mod 10 do
s[i+x div 10 - 1]:=s1[length(s1)-i+1];
end;
procedure swap(a:string);
begin
val(a,x,er);
for
i:=1 to (x mod 100) div 10 do
begin
d:=s[i+x div 100 - 1];
s[i+x div 100 - 1]:=s[i+x mod 10 - 1];
s[i+x mod 10 - 1]:=d;
end;
end;
procedure sort(a:string);
var ii,jj:integer;
begin
d:=a[length(a)];
delete(a,length(a),1);
val(a,x,er);
s1:=copy(s,x div 10,x mod 10);
if
d='A' then
begin
for ii:=1 to length(s1)-1 do
for jj:=ii+1 to length(s1) do
if s1[ii]>s1[jj] then
begin
aux:=s1[ii];
s1[ii]:=s1[jj];
s1[jj]:=aux;
end;
end;
if
d='D' then
begin
for ii:=1 to length(s1)-1 do
for jj:=ii+1 to length(s1) do
if s1[ii]<s1[jj] then
begin
aux:=s1[ii];
s1[ii]:=s1[jj];
s1[jj]:=aux;
end;
end;
for
i:=1 to x mod 10 do
s[i+x div 10 - 1]:=s1[i];
end;
begin
clrscr;
assign(ff,'INPUT.TXT');
reset(ff);
for
k:=1 to 5 do
begin
readln(ff,s);
i:=0;
p:=1;
while p<>0 do
begin
p:=pos('/',s);
if p<>0 then
begin
inc(i);
op[i]:=copy(s,1,p-1);
delete(s,1,p);
end;
end;
n:=i;
for j:=1 to n do
begin
p:=pos('-',op[j]);
f:=copy(op[j],1,p-1);
a:=copy(op[j],p+1,length(op[j]));
if f='LS' then ls(a)
else if f='RS' then rs(a)
else if f='LC' then lc(a)
else if f='RC' then rc(a)
else if f='MC' then mc(a)
else if f='REV' then rev(a)
else if f='SWAP' then swap(a)
else if f='SORT' then sort(a);
end;
writeln(s);
end;
close(ff);
readln;