import java.io.*;
import java.util.Scanner;
public class Main {
private static final int NMAX = 100005;
private static int[] segmentTree = new int[4 * NMAX];
private static int n, q;
public static void main(String[] args) throws IOException {
Scanner scanner = new Scanner(new FileInputStream(new File("arbint.in")));
PrintWriter writer = new PrintWriter(new FileOutputStream(new File("arbint.out")));
n = scanner.nextInt();
q = scanner.nextInt();
for(int i = 1; i <= n; ++i) Update(i, scanner.nextInt());
while(q-- > 0)
if (scanner.nextInt() == 0)
writer.write(String.valueOf(Query(scanner.nextInt(), scanner.nextInt())) + "\n");
else
Update(scanner.nextInt(), scanner.nextInt());
scanner.close();
writer.close();
}
private static void Update(int indexToUpdate, int newValue) {
Update(indexToUpdate, newValue, 1, n, 1);
}
private static void Update(int indexToUpdate, int newValue, int left, int right, int currentIndex) {
if(left == right) {
segmentTree[currentIndex] = newValue;
} else {
int middle = (left + right) >> 1;
if (indexToUpdate <= middle)
Update(indexToUpdate, newValue, left, middle, currentIndex << 1);
else
Update(indexToUpdate, newValue, middle + 1, right, (currentIndex << 1) + 1);
segmentTree[currentIndex] = Math.max(segmentTree[currentIndex << 1], segmentTree[(currentIndex << 1) + 1]);
}
}
private static int Query(int leftQuery, int rightQuery) {
return Query(leftQuery, rightQuery, 1, n, 1);
}
private static int Query(int leftQuery, int rightQuery, int left, int right, int currentIndex) {
// [( )]
if(left >= leftQuery && rightQuery <= right) {
return segmentTree[currentIndex];
} else {
int middle = (left + right) >> 1;
// [ ( | ) ]
if(leftQuery <= middle && middle < rightQuery)
return Math.max(
Query(leftQuery, middle, left, middle, currentIndex << 1),
Query(middle + 1, rightQuery, middle + 1, right, (currentIndex << 1) + 1));
else
// [ ( ) | ]
if(rightQuery <= middle)
return Query(leftQuery, rightQuery, left, middle, currentIndex << 1);
// [ | ( ) ]
else
return Query(leftQuery, rightQuery, middle + 1, right, (currentIndex << 1) + 1);
}
}
}