#define _CRT_SECURE_NO_WARNINGS
#include
int main(void)
{
int a[30000] = { 0 }, b[30000] = { 0 }, N, M, i, j, x = 0, y = 0, k, max, q = 0;
char letter = '0';
while (scanf("%d %d", &N, &M)) / 输入多组数据,循环输入
{
for (i = 0; i < N; i++)
{
scanf("%d", &a[i]);
}
for (j = 0; j < M; j++)
{
//scanf("%s %d %d\n", &letter, &x, &y);
scanf("%s %d %d", &letter, &x, &y); // 需要去掉换行符
if (x <= y)
{
if (letter == 'U')
{
a[x - 1] = y;
}
if (letter == 'Q')
{
max = a[x - 1];
for (k = x - 1; k < y; k++)
{
if (max < a[k])
max = a[k];
}
b[q] = max;
q++;
}
}
else
{
if (letter == 'U')
{
a[x - 1] = y;
}
if (letter == 'Q')
{
max = a[y - 1];
for (k = y - 1; k < x; k++)
{
if (max < a[k])
max = a[k];
}
b[q] = max;
q++;
}
}
}
for (i = 0; i < q; i++)
printf("%d \n", b[i]);
q = 0;
getchar();
}
}