#include<bits/stdc++.h>
using namespace std;
#define MAXN 320100
int n,m;
int a[MAXN],d[MAXN*2+1],d2[MAXN*2+1];
void build(int s,int t,int p){
if(s==t){d[p]=a[s];d2[p]=a[s];return;}
int m=s+((t-s)>>1);
build(s,m,p*2);
build(m+1,t,p*2+1);
d[p]=max(d[p*2],d[(p*2)+1]);
d2[p]=min(d2[p*2],d2[(p*2)+1]);
}
int getmax(int l,int r,int s,int t,int p){
if(l<=s&&t<=r)return d[p];
int m=s+((t-s)>>1);
int sum=-1;
if(l<=m)sum=max(sum,getmax(l,r,s,m,p*2));
if(r>m)sum=max(sum,getmax(l,r,m+1,t,p*2+1));
return sum;
}
int getmin(int l,int r,int s,int t,int p){
if(l<=s&&t<=r)return d2[p];
int m=s+((t-s)>>1);
int sum=MAXN;
if(l<=m)sum=min(sum,getmin(l,r,s,m,p*2));
if(r>m)sum=min(sum,getmin(l,r,m+1,t,p*2+1));
return sum;
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++)
cin>>a[i];
build(1,n,1);
for(int i=1;i<=m;i++){
int l,r;
cin>>l>>r;
cout<<getmax(l,r,1,n,1)-getmin(l,r,1,n,1)<<endl;
}
}