import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
public class Main {
static int N, Q, operation, a, b;
static int[] values, sTree;
public static int[] parseLine(String line) {
String[] elements = line.split(" ");
int[] result = new int[elements.length];
for (int it = 0; it < elements.length; ++it) {
result[it] = Integer.parseInt(elements[it]);
}
return result;
}
public static int max(int a, int b) {
return a < b ? b : a;
}
public static void update(int[] sTree, int node, int left, int right, int a, int b, int value) {
if (left == right) {
sTree[node] = value;
} else {
int middle = left + (right - left) / 2;
if (a <= middle) {
update(sTree, 2 * node + 1, left, middle, a, b, value);
}
if (b > middle) {
update(sTree, 2 * node + 2, middle + 1, right, a, b, value);
}
sTree[node] = max(sTree[2 * node + 1], sTree[2 * node + 2]);
}
}
public static int query(int[] sTree, int node, int left, int right, int a, int b) {
if (a <= left && right <= b) {
return sTree[node];
} else {
int middle = left + (right - left) / 2, first = 0, second = 0;
if (a <= middle) {
first = query(sTree, 2 * node + 1, left, middle, a, b);
}
if (middle < b) {
second = query(sTree, 2 * node + 2, middle + 1, right, a, b);
}
return max(first, second);
}
}
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new FileReader("arbint.in"));
BufferedWriter writer = new BufferedWriter(new FileWriter("arbint.out"));
String line = reader.readLine();
int[] numbers = parseLine(line);
N = numbers[0];
Q = numbers[1];
line = reader.readLine();
values = parseLine(line);
sTree = new int[3 * N];
for (int it = 0; it < N; ++it) {
update(sTree, 0, 0, N - 1, it, it, values[it]);
}
for (int it = 0; it < Q; ++it) {
line = reader.readLine();
numbers = parseLine(line);
operation = numbers[0];
a = numbers[1];
b = numbers[2];
switch (operation) {
case 0:
writer.write(query(sTree, 0, 0, N - 1, a - 1, b - 1) + "\n");
break;
default:
update(sTree, 0, 0, N - 1, a - 1, a - 1, b);
break;
}
}
reader.close();
writer.close();
}
}