#include <iostream>
#include <string>
#include <cctype>
#include <algorithm>
using namespace std;
int p1, p2, p3;
string s;
string expand(char a, char b)
{
string str;
if (isdigit(a) && isdigit(b) && a < b)
{
if (p1 != 3)
for (char c = a + 1; c <= b - 1; c++)
str += string(p2, c);
else
str += string((b - a - 1) * p2, '*');
}
else if (islower(a) && islower(b) && a < b)
{
if (p1 == 1)
for (char c = a + 1; c <= b - 1; c++)
str += string(p2, c);
else if (p1 == 2)
for (char c = a + 1; c <= b - 1; c++)
str += string(p2, toupper(c));
else
str += string((b - a - 1) * p2, '*');
}
else
str += '-';
if (p3 == 2)
reverse(str.begin(), str.end());
return str;
}
int main()
{
cin >> p1 >> p2 >> p3 >> s;
for (int i = 0; i < s.size(); i++)
{
if (s[i] == '-')
cout << expand(s[i - 1], s[i + 1]);
else
cout << s[i];
}
return 0;
}
#include <stdio.h>
#include <ctype.h>
#include <string.h>
int main(void)
{
int p1, p2, p3;
scanf("%d %d %d", &p1, &p2, &p3);
char s[101];
scanf("%s", s);
int len = strlen(s);
for (int i = 0; i < len; i++)
{
if (s[i] != '-')
putchar(s[i]);
else
{
if (s[i + 1] <= s[i - 1] || ! ((isdigit(s[i + 1]) && isdigit(s[i - 1]))
|| (islower(s[i + 1]) && islower(s[i - 1]))))
putchar(s[i]);
else if (s[i + 1] == s[i - 1] + 1)
;
else
{
char a, b;
if (p3 == 1)
a = s[i - 1] + 1, b = s[i + 1] - 1;
else
a = s[i + 1] - 1, b = s[i - 1] + 1;
for (int d = a; (p3 == 1 && d <= b) || (p3 == 2 && d >= b);
d += (p3 == 1 ? 1 : -1))
{
for (int t = 0; t < p2; t++)
{
switch(p1)
{
case 1: putchar(tolower(d)); break;
case 2: putchar(toupper(d)); break;
case 3: putchar('*'); break;
}
}
}
}
}
}
return 0;
}