#include <string.h>
#include <stdio.h>
#include <math.h>
int derevo(int i, int *a, int *mass, int l, int r) {
if (l == r) {
return mass[i] = a[l];
}
return mass[i] = fmax(derevo(2 * i + 1, a, mass, l, (l + r) / 2), derevo(2 * i + 2, a, mass, (l + r) / 2 + 1, r));
}
int f(int i, int* mass, int nl, int nr, int l, int r) {
if (nl == l && nr == r){
return mass[i];
}
if (nl <= (l + r) / 2 && nr <= (l + r) / 2) {
return f(2 * i + 1, mass, nl, nr, l, (l + r) / 2);
}
if (nl > (l + r) / 2 && nr > (l + r) / 2) {
return f(2 * i + 2, mass, nl, nr, (l + r) / 2 + 1, r);
}
if (nl<= (l + r) / 2 && nr > (l + r) / 2) {
return fmax(f(2 * i + 1, mass, nl, (l + r) / 2, l, (l + r) / 2),
f(2 * i + 2, mass, (l + r) / 2+1, nr, (l + r) / 2 + 1, r));
}
}
int upd(int index, int znach, int l, int r, int *mass, int i){
if (l == r) { return mass[i] = znach; }
if (index <= (l + r) / 2) {
return mass[i] = fmax(mass[i], upd(index, znach, l, (l + r) / 2, mass, 2 * i + 1));
}
return mass[i] = fmax(mass[i], upd(index, znach, (l + r) / 2+1, r, mass, 2 * i + 2));
}
int main(){
int n;
scanf("%d", &n);
int a[n];
for (int i = 0; i < n; i++) {
scanf("%i", &a[i]);
}
for (int i = 0; i < n; i++) {
printf("%i ", a[i]);
}
int k;
scanf("%d", &k);
int* mass = (int*)malloc(4 * n * sizeof(int));
derevo(0, a, mass, 0, n - 1);
char ma[4]= "MAX";
char up[4]= "UPD";
for (int i = 0; i < k; i++) {
char s[4];
scanf("%s ", &s);
int x, y;
scanf("%d", &x);
scanf("%d", &y);
if (strcmp(s,ma) == 0) {
printf("%d ", f(0, mass, x, y, 0, n - 1));
}
else {
upd(x, y, 0, n-1, mass, 0);
}
}
free(mass);
return 0;
}
I2luY2x1ZGUgPHN0cmluZy5oPgojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPG1hdGguaD4KCmludCBkZXJldm8oaW50IGksIGludCAqYSwgaW50ICptYXNzLCBpbnQgbCwgaW50IHIpIHsKCWlmIChsID09IHIpIHsKCQlyZXR1cm4gbWFzc1tpXSA9IGFbbF07Cgl9CglyZXR1cm4gbWFzc1tpXSA9IGZtYXgoZGVyZXZvKDIgKiBpICsgMSwgYSwgbWFzcywgbCwgKGwgKyByKSAvIDIpLCBkZXJldm8oMiAqIGkgKyAyLCBhLCBtYXNzLCAobCArIHIpIC8gMiArIDEsIHIpKTsKfQoKaW50IGYoaW50IGksIGludCogbWFzcywgaW50IG5sLCBpbnQgbnIsIGludCBsLCBpbnQgcikgewoJaWYgKG5sID09IGwgJiYgbnIgPT0gcil7CgkJcmV0dXJuIG1hc3NbaV07Cgl9CglpZiAobmwgPD0gKGwgKyByKSAvIDIgJiYgbnIgPD0gKGwgKyByKSAvIDIpIHsKCQlyZXR1cm4gZigyICogaSArIDEsIG1hc3MsIG5sLCBuciwgbCwgKGwgKyByKSAvIDIpOwoJfQoJaWYgKG5sID4gKGwgKyByKSAvIDIgJiYgbnIgPiAobCArIHIpIC8gMikgewoJCXJldHVybiBmKDIgKiBpICsgMiwgbWFzcywgbmwsIG5yLCAobCArIHIpIC8gMiArIDEsIHIpOwoJfQoJaWYgKG5sPD0gKGwgKyByKSAvIDIgJiYgbnIgPiAobCArIHIpIC8gMikgewoJCXJldHVybiBmbWF4KGYoMiAqIGkgKyAxLCBtYXNzLCBubCwgKGwgKyByKSAvIDIsIGwsIChsICsgcikgLyAyKSwKCQkJZigyICogaSArIDIsIG1hc3MsIChsICsgcikgLyAyKzEsIG5yLCAobCArIHIpIC8gMiArIDEsIHIpKTsKCX0KfQoKaW50IHVwZChpbnQgaW5kZXgsIGludCB6bmFjaCwgaW50IGwsIGludCByLCBpbnQgKm1hc3MsIGludCBpKXsKCWlmIChsID09IHIpIHsgcmV0dXJuIG1hc3NbaV0gPSB6bmFjaDsgfQoJaWYgKGluZGV4IDw9IChsICsgcikgLyAyKSB7CgkJcmV0dXJuIG1hc3NbaV0gPSBmbWF4KG1hc3NbaV0sIHVwZChpbmRleCwgem5hY2gsIGwsIChsICsgcikgLyAyLCBtYXNzLCAyICogaSArIDEpKTsKCX0KCXJldHVybiBtYXNzW2ldID0gZm1heChtYXNzW2ldLCB1cGQoaW5kZXgsIHpuYWNoLCAobCArIHIpIC8gMisxLCByLCBtYXNzLCAyICogaSArIDIpKTsKfQoKaW50IG1haW4oKXsKCWludCBuOwoJc2NhbmYoIiVkIiwgJm4pOwoJaW50IGFbbl07Cglmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewoJCXNjYW5mKCIlaSIsICZhW2ldKTsKCX0KCWZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CgkJcHJpbnRmKCIlaSAiLCBhW2ldKTsKCX0KCWludCBrOwoJc2NhbmYoIiVkIiwgJmspOwoJaW50KiBtYXNzID0gKGludCopbWFsbG9jKDQgKiBuICogc2l6ZW9mKGludCkpOwoJZGVyZXZvKDAsIGEsIG1hc3MsIDAsIG4gLSAxKTsKCWNoYXIgbWFbNF09ICJNQVgiOwoJY2hhciB1cFs0XT0gIlVQRCI7Cglmb3IgKGludCBpID0gMDsgaSA8IGs7IGkrKykgewoJCWNoYXIgc1s0XTsKCSAgICBzY2FuZigiJXMgIiwgJnMpOwoJCWludCB4LCB5OwoJCXNjYW5mKCIlZCIsICZ4KTsKCQlzY2FuZigiJWQiLCAmeSk7CgkJaWYgKHN0cmNtcChzLG1hKSA9PSAwKSB7CgkJCXByaW50ZigiJWQgIiwgZigwLCBtYXNzLCB4LCB5LCAwLCBuIC0gMSkpOwoJCX0KCQllbHNlIHsKCQkgICAgdXBkKHgsIHksIDAsIG4tMSwgbWFzcywgMCk7CgkJfQoJfQoJZnJlZShtYXNzKTsKCXJldHVybiAwOwp9