var
p1,p2,p3,m,a,b,i:longint;
s:ansistring;
procedure f1(a,b:longint);
var k,j:longint;
begin
if (p1=3) then for k:=a+1 to b-1 do for j:=1to p2 do write (’*’);
if (p1<>3) then
begin
if (p1=1) and (a>=65)and(a<=90)and(b>=65)and(b<=90)
then begin a:=a+32; b:=b+32; end;
if (p1=2) and (a>=97)and(a<=122)and(b>=97)and(a<=122)
then begin a:=a-32; b:=b-32; end;
for k:=a+1 to b-1 do
for j:=1to p2 do write(chr(k));
end;
end;
procedure f2(a,b:longint);
var k,j:longint;
begin
if (p1=3) then for k:=b-1 downto a+1 do for j:=1to p2 do write (’*’);
if (p1<>3) then
begin
if (p1=1) and (a>=65)and(a<=90)and(b>=65)and(b<=90)
then begin a:=a+32; b:=b+32; end;
if (p1=2) and (a>=97)and(a<=122)and(b>=97)and(a<=122)
then begin a:=a-32; b:=b-32; end;
for k:=b-1 downto a+1 do
for j:=1to p2 do write(chr(k));
end;
end;
procedure f(a,b:longint);
var k:longint;
begin
if a+1<>b then
begin
if(a>=b) then write(’-’)
else case p3 of 1 : f1(a,b);
2 : f2(a,b);
end; end;
end;
begin
readln(p1,p2,p3);
readln(s);
m:=length(s);
write(s[1]);
for i:=2 to m-1 do
if (s[i]=’-’)
then begin
a:=ord(s[i-1]);
b:=ord(s[i+1]);
f(a,b);
end
else write(s[i]);
write(s[m]);
end.