#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#define NR 100000
using namespace std;
int query(int *vec, int begin, int end, int a, int b, int poz) {
// begin == 0, end == n - 1
// printf("q begin = %i, end = %i, poz = %i, a = %i, b = %i\n", begin, end, poz, a, b);
if (begin == a && end == b) {
return vec[poz];
}
int mid = (begin + end) / 2;
if (a > mid) {
return query(vec, mid + 1, end, a, b, poz * 2 + 1);
}
else if (b <= mid) {
return query(vec, begin, mid, a, b, poz * 2);
}
else {
int res1 = query(vec, begin, mid, a, mid, poz * 2);
int res2 = query(vec, mid + 1, end, mid + 1, b, poz * 2 + 1);
return res1 > res2 ? res1 : res2;
}
}
void update(int *vec, int begin, int end, int a, int b, int poz) {
// printf("u begin = %i, end = %i, poz = %i, a = %i, b = %i\n", begin, end, poz, a, b);
if (begin == end) {
vec[poz] = b;
return;
}
int mid = (begin + end) / 2;
if (a <= mid) {
update(vec, begin, mid, a, b, poz * 2);
vec[poz] = vec[2 * poz] > vec[2 * poz + 1] ? vec[2 * poz] : vec[2 * poz + 1];
}
else {
update(vec, mid + 1, end, a, b, poz * 2 + 1);
vec[poz] = vec[2 * poz] > vec[2 * poz + 1] ? vec[2 * poz] : vec[2 * poz + 1];
}
}
int main() {
freopen("arbint.in", "r", stdin);
freopen("arbint.out", "w", stdout);
int n, m;
scanf("%i", &n);
scanf("%i", &m);
int *vec = (int*)calloc(NR * 4, sizeof(int));
for (int i = 1; i < n + 1; i++) {
int begin = 1;
int end = n;
int poz = 1;
int x;
scanf("%i", &x);
vec[poz] = vec[poz] > x ? vec[poz] : x;
while (begin != end) {
int mid = (begin + end) / 2;
if (i <= mid) {
poz = 2 * poz;
vec[poz] = vec[poz] > x ? vec[poz] : x;
end = mid;
}
else {
poz = 2 * poz + 1;
vec[poz] = vec[poz] > x ? vec[poz] : x;
begin = mid + 1;
}
}
vec[poz] = x;
}
for (int i = 0; i < m; i++) {
int tip, a, b;
scanf("%i", &tip);
scanf("%i", &a);
scanf("%i", &b);
/* for (int i = 0; i < 4 * n; i++) {
printf("%i ", vec[i]);
}
printf("\n");*/
if (tip == 0) {
printf("%i\n", query(vec, 1, n, a, b, 1));
}
else {
update(vec, 1, n, a, b, 1);
}
}
fclose(stdin);
fclose(stdout);
return 0;
}