#include<bits/stdc++.h>
using namespace std;
bool isnumble = false;
string s1,s2;
void kz(char a,char b,int p1,int p2,int p3){
string s;
for(char i=a+1;i<b;i++){
for(int j=0;j<p2;j++){
if(p1==3){
s+='*';
}else{
if(isnumble){
s+=i;
}else{
if(p1==2){
s+=i-32;
}else{
s+=i;
}
}
}
}
}
if(p3==2){
reverse(s.begin(),s.end());
}
s2+=s;
}
int main(){
int p1,p2,p3;
cin>>p1>>p2>>p3;
cin>>s1;
int isy[105]={0};
for(int i=0;i<s1.length();i++){
if(s1[i]=='-'){
if(isy[i-1]==1||i==s1.length()-1){
s2+='-';
isy[i] = 1;
}else{
if(s1[i-1]>=s1[i+1]){
s2+='-';
}else if((s1[i-1]>='0'&&s1[i-1]<='9'&&s1[i+1]>='0'&&s1[i+1]<='9')){
isnumble = true;
kz(s1[i-1],s1[i+1],p1,p2,p3);
}else if((s1[i-1]>='a'&&s1[i-1]<='z'&&s1[i+1]>='a'&&s1[i+1]<='z')){
isnumble = false;
kz(s1[i-1],s1[i+1],p1,p2,p3);
}else{
s2+='-';
}
isy[i] = 1;
isy[i-1] = 1;
}
}else{
s2+=s1[i];
}
}
cout<<s2;
return 0;
}