var a,b,c:longint; s:string; proceduremain(p:longint); var i,j:longint; begin if s[p+1]<=s[p-1] thenwrite('-') else if c=1then for i:=(ord(s[p-1])+1) to (ord(s[p+1])-1) do for j:=1to b do if a=3thenwrite('*') else if (s[p-1]>='a')and(s[p-1]<='z')and(a=2) then write(upcase(chr(i))) else write(chr(i)) else for i:=(ord(s[p+1])-1) downto (ord(s[p-1])+1) do for j:=1to b do if a=3thenwrite('*') else if (s[p-1]>='a')and(s[p-1]<='z')and(a=2) then write(upcase(chr(i))) else write(chr(i)); end; var i:longint; begin readln(a,b,c); readln(s); write(s[1]); for i:=2to length(s)-1do if s[i]<>'-'thenwrite(s[i]) else if ((s[i-1]>='0')and(s[i-1]<='9')and(s[i+1]>='0')and(s[i+1]<='9'))or((s[i-1]>='a')and(s[i-1]<='z')and(s[i+1]<='a')and(s[i+1]>='z')) then main(i) else write(s[i]); writeln(s[length(s)]); end.