# 从输入中读取一组整数,并提取第二个整数作为操作次数
times = [int(i) for i in input().split()][1]
# 从输入中读取一个字符串,作为需要处理的初始字符串
char = input()
# 循环执行指定次数的操作
for i in range(times):
# 从输入中读取一对整数,表示需要处理的子字符串的起始和结束索引(1-based)
index = [int(j) for j in input().split()]
# 初始化一个空字符串,用于存储重复后的子字符串
mid = ""
# 遍历指定索引范围内的字符(注意:Python索引是0-based,所以需要减1)
for k in char[index[0] - 1 : index[1]]:
# 将每个字符重复两次,并拼接到mid字符串中
mid += 2 * k
# 用重复后的子字符串替换原字符串中的对应部分
# char[:index[0]-1] 是子字符串之前的部分
# mid 是重复后的子字符串
# char[index[1]:] 是子字符串之后的部分
char = char[: index[0] - 1] + mid + char[index[1] :]
# 输出最终处理后的字符串
print(char)