#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")