#include<stdio.h>
int a, b, c;
char result[200];
int getfill(char, char,int); //最终结果都是写入result中,此函数用于得到应扩展开的部分
int main(void)
{
scanf("%d%d%d", &a, &b, &c);
char string[100],ch;
int i = 0;
getchar();
getchar();
while((ch=getchar())!='\n')
string[i++] = ch;
char front, back;
int j = 0,q;
q = i - 1;
i = 0;
while(string[i])
{
if(string[i]=='-')
{
if(i==0||i==q){ //首尾的-
result[j++] = '-';
i++;
continue;
}
front = string[i - 1], back=string[i + 1];
//连续的-
if(front=='-'||back=='-'){
result[j++] = '-';
i++;
continue;
}
if((front<='z'&&front>='a'&&back<='z'&&back>='a')||(front<='9'&&front>='0'&&back<='9'&&back>='0'))
{
if(front>=back)
{
result[j++] = string[i++];
}
else if(back-front==1)
{
//result[j++] = string[i + 1];
i++;
}
else
{
j=getfill(front,back,j);
i++; //数组的指头要向下一位移动,每一步操作后
}
continue;
}
else
{
result[j++]=string[i++]; //j要和函数中的k续上
continue;
}
}
else
result[j++] = string[i++];
}
i = 0;
while(result[i])
printf("%c", result[i++]);
return 0;
}
int getfill(char front,char back,int k)
{
char ch = front + 1,fill[100];
int i = 0, j = 0;
if(a==3)
{
for (; i < back - front-1;i++)
fill[i] = '*';
}
else if(a==1)
{
for (; ch < back;ch++)
for (i = 0; i < b;i++)
fill[j++] = ch;
}
else if(a==2)
{
ch = front - 'a' + 'A' + 1;
for (; ch < back+'A'-'a';ch++)
for (i = 0; i < b;i++)
fill[j++] = ch;
}
j--;
if(c==1)
{
for (i = 0; i <= j;)
result[k++] = fill[i++];
}
else if(c==2)
{
for (; j >=0;)
result[k++] = fill[j--];
}
return k;
}