var rmq:array[0..17,0..100050] of longint;
lg:array[0..100050] of longint;
n,m,i,j,lung,x,y,part2:longint;
bif,bof:array[1..1 shl 16] of char;
function min(a,b:longint):longint;
begin
if a<b then exit(a);
exit(b);
end;
begin
assign(input,'rmq.in');
assign(output,'rmq.out');
reset(input);
rewrite(output);
settextbuf(input,bif);
settextbuf(output,bof);
for i:=2 to 100000 do
lg[i]:=lg[i div 2]+1;
readln(n,m);
for i:=1 to n do
readln(rmq[0][i]);
for i:=1 to lg[n] do
for j:=1 to n-(1 shl i)+1 do
rmq[i][j]:=min(rmq[i-1][j],rmq[i-1][j+1 shl(i-1)]);
while m>0 do
begin
readln(x,y);
lung:=lg[y-x+1];
part2:=y-x+1-(1 shl lung);
writeln(min(rmq[lung][x],rmq[lung][x+part2]));
dec(m);
end;
close(input);
close(output);
{Totusi este trist in lume}
end.