using namespace std;
int p1,p2,l,p3,i=0;
string a;
int main(){
cin>>p1>>p2>>p3;
cin>>a;
int len=a.size();
while(i<len){
if(a[i]=='-'&&i==0){
cout<<'-';
i++;
continue;
}
else if(a[i]=='-'&&i==len-1){
cout<<'-';
return 0;
}
else if(a[i+1]<=a[i-1]&&a[i]=='-'||a[i-1]>='a'&&a[i-1]<='z'&&a[i+1]>='0'&&a[i+1]<='9'&&a[i]=='-'||a[i+1]>='a'&&a[i+1]<='z'&&a[i-1]>='0'&&a[i-1]<='9'&&a[i]=='-'){//如果减号右边的字符按照ASCII码的顺序小于或等于左边字符
cout<<'-'<<a[i+1];
i+=2;
continue;
}
else if(a[i]!='-'){
cout<<a[i];
i++;
continue;
}//遇到下面的情况需要做字符串的展开,在输入字符串中,出现了减号“-”
else if(a[i]=='-'&&a[i+1]>a[i-1]&&a[i+1]!='-'&&a[i-1]!='-'){
if(p1==1&&p3==1){//参数p1:展开方式,p1=1时,对于字母子串,填充小写字母;
for(int k=a[i-1]+1;k<=a[i+1]-1;k++)
for(int o=1;o<=p2;o++) cout<<char(k);
}
//.....................................................................
if(p1==2&&p3==1){//p1=2时,对于字母子串填充大写字母
if(a[i-1]>='a'&&a[i+1]>='a'&&a[i-1]<='z'&&a[i+1]<='z')
for(int k=a[i-1]+1;k<=a[i+1]-1;k++)
for(int o=1;o<=p2;o++) cout<<char(k-32);//p2:填充字符的重复个数
else for(int k=a[i-1];k<=a[i+1];k++)
for(int o=1;o<=p2;o++) cout<<char(k);//p2:填充字符的重复个数
}
//.....................................................................
if(p1==3){//p1=3时,不论是字母子串还是数字子串,都要与要填充的字母个数相等的星号“*”来补充
for(int k=a[i-1]+1;k<=a[i+1]-1;k++)
for(int o=1;o<=p2;o++) cout<<'*';//p2:填充字符的重复个数
}
//.....................................................................
if(p1==1&&p3==2){//参数p1:展开方式,p1=1时,对于字母子串,填充小写字母;
for(int k=a[i+1]-1;k>=a[i-1]+1;k--)
for(int o=1;o<=p2;o++) cout<<char(k);//p2:填充字符的重复个数
}
//.....................................................................
if(p1==2&&p3==2){//p1=2时,对于字母子串填充大写字母
if(a[i-1]>='a'&&a[i+1]>='a'&&a[i-1]<='z'&&a[i+1]<='z')
for(int k=a[i+1]-1;k>=a[i-1]+1;k--)
for(int o=1;o<=p2;o++) cout<<char(k-32);//p2:填充字符的重复个数
else for(int k=a[i+1]-1;k>=a[i-1]+1;k--)
for(int o=1;o<=p2;o++) cout<<char(k);//p2:填充字符的重复个数
}
cout<<a[i+1];
i+=2;
}
//.....................................................................
}
return 0;
}
//哪位大佬帮忙看看是哪里的问题