def get_gap(char1,char2):
ascii_value1 = ord(char1) # 将字符转换为ASCII码
ascii_value2 = ord(char2) # 将字符转换为ASCII码
gap=ascii_value2-ascii_value1
return gap
def get_next_ascii_char(char1,char2,p1,p2,p3):
a=[]
ascii_value1 = ord(char1) # 将字符转换为ASCII码
ascii_value2 = ord(char2) # 将字符转换为ASCII码
for i in range(ascii_value1+1,ascii_value2):
a.append(chr(i))
if p1==1:
if char1.isalpha() and char2.isalpha():
for i in range(len(a)):
a[i]=a[i].lower()
if p1==2:
if char1.isalpha() and char2.isalpha():
for i in range(len(a)):
a[i] = a[i].upper()
if p1==3:
for i in range(len(a)):
a[i] = "*"
for i in range(len(a)):
a[i]=a[i]*p2
if p3==2:
a.reverse()
return a
# 示例使用
p1,p2,p3=map(int,input().split(" "))
deal=input()
out=""
list=[char for char in deal]
for i in range(len(list)):
if list[i]=="-":
gap=get_gap(list[i-1],list[i+1])
if gap<0:
if (list[i-1].isalpha() and list[i+1].isalpha()) or (list[i-1].isdigit() and list[i+1].isdigit()):
list[i-1],list[i+1]=list[i+1],list[i-1]
list[i]=" "
if gap>0:
if (list[i - 1].isalpha() and list[i + 1].isalpha()) or (list[i - 1].isdigit() and list[i + 1].isdigit()):
step=get_next_ascii_char(list[i-1],list[i+1],p1,p2,p3)
list[i]=step
flatten_list = [element for sublist in list for element in sublist]
for i in range(len(flatten_list)):
if flatten_list[i]!=" ":
print(flatten_list[i],end="")