var a:array[0..16,1..100000] of int64;
n,m,i,j,d,p,b,c,e,q,k:longint;
e2:int64;
f,g:text;
begin
assign(f,'arbint.in');
assign(g,'arbint.out');
reset(f);rewrite(g);
readln(f,n,m);
for i:=1 to n do
read(f,a[0,i]);
d:=1;
repeat
p:=p+1;
d:=d*2;
until d>n;
p:=p-1;
d:=1;
for i:=1 to p do
begin
for j:=1 to n-d do
if a[i-1,j]>a[i-1,j+d] then
a[i,j]:=a[i-1,j]
else
a[i,j]:=a[i-1,j+d];
d:=d*2;
end;
q:=p;
for i:=1 to m do
begin
readln(f,b,c,e2);
if b=0 then
begin
e:=e2;
p:=0;
d:=1;
while d<=e-c+1 do
begin
p:=p+1;
d:=d*2;
end;
p:=p-1;
d:=d div 2;
if a[p,c]>a[p,e-d+1] then
writeln(g,a[p,c])
else
writeln(g,a[p,e-d+1]);
end
else
begin
d:=2;
a[0,c]:=e2;
for j:=1 to q do
begin
e:=c-d+1;
if e<=0 then
e:=1;
for k:=e to c do
if a[j-1,k]>a[j-1,k+d div 2] then
a[j,k]:=a[j-1,k]
else
a[j,k]:=a[j-1,k+d div 2];
d:=d*2;
end;
end;
end;
close(f);close(g);
end.