#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
string operator*(const string &s,int n)
{
string rec = "";
for(int i=0;i<n;i++)
{
rec+=s;
}
return rec;
}
int main() {
//输入数据
int p1,p2,p3;
cin>>p1>>p2>>p3;
string s;
cin>>s;
int len = s.length();
//展开字符
string res="";
for(int i=0;i<len;i++)
{
if(s[i]=='-')
{
if(i==0||i==len-1) {res+='-';continue;}
//两边是数字
if(('0'<=s[i-1]&&s[i-1]<='9')&&('0'<=s[i+1]&&s[i+1]<='9')&&s[i-1]<s[i+1])
{
int start = (s[i-1]-'0'),end=(s[i+1]-'0');
string add = "";
for(int i=start+1;i<end;i++)
{
if(p1==3)
{
add+= string(1,'*')*p2;
}
else
add+= to_string(i)*p2;
}
if(p3==2) reverse(add.begin(),add.end());
res+=add;
}
else if(('a'<=s[i-1]&&s[i-1]<='z')&&('a'<=s[i+1]&&s[i+1]<='z')&&s[i-1]<s[i+1])
{
int start = (s[i-1]-'a'),end=(s[i+1]-'a');
string add = "";
for(int i=start+1;i<end;i++)
{
if(p1==1)
{
add+=string(p2,'a'+i);
}
if(p1==2)
{
add+=string(p2,'A'+i);
}
if(p1==3)
{
add+=string(p2,'*');
}
}
if(p3==2) reverse(add.begin(),add.end());
res+=add;
}
else
{
res+=s[i];
}
}
else
{
res+=s[i];
}
}
cout<<res;
return 0;
}
// 64 位输出请用 printf("%lld")