#include<bits/stdc++.h>
using namespace std;
int main(){
int p1,p2,p3;
string s;
cin>>p1>>p2>>p3;
cin>>s;
int cnt,sum;
for(int i=0;i<s.size();i++){
cnt=s[i]-'0';
if(s[i]>='0'&&s[i]<='9'&&p1==1||s[i]>='0'&&s[i]<='9'&&p1==2){//小写
if(s[i]!='-'&&s[i+1]=='-'){//是否要扩
cout<<s[i];
sum=s[i+2]-'0';
if(p3==1){//正序
if(sum<=cnt){
cout<<"-";
continue;
}
for(int k=cnt+2;k<=sum;k++){
for(int j=1;j<=p2;j++){
char c=k+47;
if(c!='-'){
cout<<c;
}
}
}
}else{//逆序
for(int k=sum;k>=cnt+2;k--){
for(int j=1;j<=p2;j++){
char cc=k+47;
if(cc!='-'){
cout<<cc;
}
}
}
}
}else{//是否要扩
if(s[i]!='-')cout<<s[i];
}
}
else if(p1==1){//小写
if(s[i]!='-'&&s[i+1]=='-'){//是否要扩
cout<<s[i];
sum=s[i+2]-'0';
if(p3==1){//正序
if(sum<=cnt){
cout<<"-";
continue;
}
for(int k=cnt+2;k<=sum;k++){
for(int j=1;j<=p2;j++){
char c=k+47;
if(c!='-'){
cout<<c;
}
}
}
}else{//逆序
for(int k=sum;k>=cnt+2;k--){
for(int j=1;j<=p2;j++){
char cc=k+47;
if(cc!='-'){
cout<<cc;
}
}
}
}
}else{//是否要扩
if(s[i]!='-')cout<<s[i];
}
}else if(p1==2){//大写
cnt=s[i]-'0'+15;
if(s[i]!='-'&&s[i+1]=='-'){//是否要扩
cout<<s[i];
sum=s[i+2]-'0'+15;
if(sum<=cnt){
cout<<"-";
continue;
}
if(s[i]>='0'&&s[i]<='9'){
cout<<s[i];
}else{
if(p3==1){//正序
for(int k=cnt+2;k<=sum;k++){
for(int j=1;j<=p2;j++){
char sc=k;
if(sc!='-'){
cout<<sc;
}
}
}
}else{//逆序
for(int k=sum;k>=cnt+2;k--){
for(int j=1;j<=p2;j++){
char ac=k;
if(ac!='-'){
cout<<ac;
}
}
}
}
}
}else{//是否要扩
if(s[i]!='-')cout<<s[i];
}
}else if(p1==3){//*号
cnt=s[i]-'0';
if(s[i]!='-'&&s[i+1]=='-'){//是否要扩
cout<<s[i];
sum=s[i+2]-'0';
if(sum<=cnt){
cout<<"-";
continue;
}
for(int k=cnt+2;k<=sum;k++){
for(int j=1;j<=p2;j++){
cout<<"*";
}
}
}else{//是否要扩
if(s[i]!='-')cout<<s[i];
}
}
}
return 0;
}
//问题:无法做到连续‘-’时能保证输出的原‘-’号消失 并且输出连续‘-’