n, q = [int(x) for x in input().split()]
values = [int(x) for x in input().split()]
queries = []
min_queries = [[0 for _ in range(n)] for _ in range(n)]
for i in range(n):
min_queries[i][i] = values[i]
for j in range(i+1, n):
if ((j-i+1) & (j-i)) == 0:
min_queries[i][j] = min(values[i:j+1])
def compute_min_queries(x):
for i in range(n):
min_queries[i][i] = values[i]
for j in range(max(i+1,x), n):
if ((j-i+1) & (j-i)) == 0:
min_queries[i][j] = min(values[i:j+1])
for _ in range(q):
query = [int(x) for x in input().split()]
if query[0] == 1:
values[query[1]-1] = query[2]
compute_min_queries(query[1]-1)
else:
queries.append(min_queries[query[1]-1][query[2]-1])
for i in range(len(queries)):
print(queries[i])