#include <bits/stdc++.h>
#define Dim 250009
using namespace std;
ifstream f("cuburi2.in");
ofstream g("cuburi2.out");
typedef long long ll;
ll S[Dim],x,y,N,M,ans1,ans2;
ll V[Dim],Down[Dim],Up[Dim],S2[Dim];
int main()
{
f>>N>>M;
for(int i=1;i<=N;i++)
{
f>>x;
V[i]=x;
S[i]=S[i-1]+x;
Down[i]=Down[i-1]+S[i];
}
for(int i=N;i>=1;i--)
{
S2[i]=S2[i+1]+V[i];
Up[i]=Up[i+1]+S2[i];
}
for(int i=1;i<=M;i++)
{
f>>x>>y;
int st=x,dr=y;
ans1=0;
while(st<=dr)
{
int mij=(st+dr)/2;
if(S[mij-1]-S[x-1]<S[y]-S[mij-1])
{
st=mij+1;
ans1=mij;
}
else dr=mij-1;
}
ans2=Down[ans1-1]+Up[ans1+1]-Down[x-1]-Up[y+1]-S[x-1]*(ans1-x)-(y-ans1)*(S[N]-S[y]);
g<<ans1<<" "<<ans2<<'\n';
}
return 0;
}