import sys
input = sys.stdin.read().split()
data = list(map(int,input))
n = data[0]
q = data[1]
array = data[2:n+2]
querries = []
i = n+2
for _ in range(q) :
querries.append(data[i:i+3])
i = i +3
class SegmentTree :
def __init__(self, arr):
self.arr = arr
self.tree = [None] *(4*len(arr))
self.build(0,0,len(arr)-1)
def build(self,node,start,end):
if end == start :
self.tree[node] = self.arr[start]
else :
mid = (start+end)//2
self.build(2*node +1, start, mid)
self.build(2*node +2, mid+1, end)
self.tree[node] = min(self.tree[2*node +1], self.tree[2*node +2])
def query (self, node, start, end, left, rigth) :
if rigth < start or left > end :
return float('inf')
if left <= start and rigth >= end :
return self.tree[node]
mid = (start+end)//2
return min(self.query(2*node +1,start, mid, left, rigth), self.query(2*node +2, mid +1, end, left, rigth))
tree = SegmentTree(array)
for querry in querries :
if querry[0] == 1 :
array[querry[1]-1] = querry[2]
tree = SegmentTree(array)
else :
print(tree.query(0,0,n-1,querry[1]-1,querry[2]-1))