#include<bits/stdc++.h>
using namespace std;
#define int long long
const int M=3e5+10,INF=1e15;
int n,d,a[M],p[M],ans[M];
vector<pair<int,int>>q[M];
struct SG{
int s[4*M],m[4*M],lz[4*M];
void b(int i,int l,int r){
if(l==r){s[i]=m[i]=a[l];return;}
int x=(l+r)/2;
b(i*2,l,x);b(i*2+1,x+1,r);
s[i]=s[i*2]+s[i*2+1];
m[i]=min(m[i*2],m[i*2+1]);
}
void ps(int i,int l,int r){
if(!lz[i])return;
int x=(l+r)/2,v=lz[i];
s[i*2]+=v*(x-l+1);m[i*2]+=v;lz[i*2]+=v;
s[i*2+1]+=v*(r-x);m[i*2+1]+=v;lz[i*2+1]+=v;
lz[i]=0;
}
void u(int i,int l,int r,int L,int R,int v){
if(r<L||R<l)return;
if(L<=l&&r<=R){
s[i]+=v*(r-l+1);m[i]+=v;lz[i]+=v;return;
}
ps(i,l,r);
int x=(l+r)/2;
u(i*2,l,x,L,R,v);
u(i*2+1,x+1,r,L,R,v);
s[i]=s[i*2]+s[i*2+1];
m[i]=min(m[i*2],m[i*2+1]);
}
int gs(int i,int l,int r,int L,int R){
if(r<L||R<l)return 0;
if(L<=l&&r<=R)return s[i];
ps(i,l,r);
int x=(l+r)/2;
return gs(i*2,l,x,L,R)+gs(i*2+1,x+1,r,L,R);
}
int gm(int i,int l,int r,int L,int R){
if(r<L||R<l)return INF;
if(L<=l&&r<=R)return m[i];
ps(i,l,r);
int x=(l+r)/2;
return min(gm(i*2,l,x,L,R),gm(i*2+1,x+1,r,L,R));
}
}seg;
main(){
ios::sync_with_stdio(0);
cin.tie(0);
cin>>n>>d;
for(int i=1;i<=n;i++)cin>>a[i],p[i]=p[i-1]+a[i];
seg.b(1,1,n);
int Q;cin>>Q;
for(int i=1,L,R;i<=Q;i++)cin>>L>>R,q[R].push_back({L,i});
vector<pair<int,int>>stk={{-INF,0}};
for(int i=1;i<=n;i++){
int L=i,v=a[i];
while(stk.back().first>v){
int c=(stk.back().first-v+d-1)/d;
seg.u(1,1,n,stk.back().second,L-1,-c*d);
L=stk.back().second;
v=seg.gs(1,1,n,L,L);
stk.pop_back();
}
stk.push_back({a[i],L});
for(auto [l,id]:q[i]){
int sum=seg.gs(1,1,n,l,i);
if(seg.gm(1,1,n,l,i)<0)ans[id]=-1;
else ans[id]=((p[i]-p[l-1])-sum)/d;
}
}
for(int i=1;i<=Q;i++)cout<<ans[i]<<"\n";
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBpbnQgbG9uZyBsb25nCmNvbnN0IGludCBNPTNlNSsxMCxJTkY9MWUxNTsKaW50IG4sZCxhW01dLHBbTV0sYW5zW01dOwp2ZWN0b3I8cGFpcjxpbnQsaW50Pj5xW01dOwpzdHJ1Y3QgU0d7CglpbnQgc1s0Kk1dLG1bNCpNXSxsels0Kk1dOwoJdm9pZCBiKGludCBpLGludCBsLGludCByKXsKCQlpZihsPT1yKXtzW2ldPW1baV09YVtsXTtyZXR1cm47fQoJCWludCB4PShsK3IpLzI7CgkJYihpKjIsbCx4KTtiKGkqMisxLHgrMSxyKTsKCQlzW2ldPXNbaSoyXStzW2kqMisxXTsKCQltW2ldPW1pbihtW2kqMl0sbVtpKjIrMV0pOwoJfQoJdm9pZCBwcyhpbnQgaSxpbnQgbCxpbnQgcil7CgkJaWYoIWx6W2ldKXJldHVybjsKCQlpbnQgeD0obCtyKS8yLHY9bHpbaV07CgkJc1tpKjJdKz12Kih4LWwrMSk7bVtpKjJdKz12O2x6W2kqMl0rPXY7CgkJc1tpKjIrMV0rPXYqKHIteCk7bVtpKjIrMV0rPXY7bHpbaSoyKzFdKz12OwoJCWx6W2ldPTA7Cgl9Cgl2b2lkIHUoaW50IGksaW50IGwsaW50IHIsaW50IEwsaW50IFIsaW50IHYpewoJCWlmKHI8THx8UjxsKXJldHVybjsKCQlpZihMPD1sJiZyPD1SKXsKCQkJc1tpXSs9diooci1sKzEpO21baV0rPXY7bHpbaV0rPXY7cmV0dXJuOwoJCX0KCQlwcyhpLGwscik7CgkJaW50IHg9KGwrcikvMjsKCQl1KGkqMixsLHgsTCxSLHYpOwoJCXUoaSoyKzEseCsxLHIsTCxSLHYpOwoJCXNbaV09c1tpKjJdK3NbaSoyKzFdOwoJCW1baV09bWluKG1baSoyXSxtW2kqMisxXSk7Cgl9CglpbnQgZ3MoaW50IGksaW50IGwsaW50IHIsaW50IEwsaW50IFIpewoJCWlmKHI8THx8UjxsKXJldHVybiAwOwoJCWlmKEw8PWwmJnI8PVIpcmV0dXJuIHNbaV07CgkJcHMoaSxsLHIpOwoJCWludCB4PShsK3IpLzI7CgkJcmV0dXJuIGdzKGkqMixsLHgsTCxSKStncyhpKjIrMSx4KzEscixMLFIpOwoJfQoJaW50IGdtKGludCBpLGludCBsLGludCByLGludCBMLGludCBSKXsKCQlpZihyPEx8fFI8bClyZXR1cm4gSU5GOwoJCWlmKEw8PWwmJnI8PVIpcmV0dXJuIG1baV07CgkJcHMoaSxsLHIpOwoJCWludCB4PShsK3IpLzI7CgkJcmV0dXJuIG1pbihnbShpKjIsbCx4LEwsUiksZ20oaSoyKzEseCsxLHIsTCxSKSk7Cgl9Cn1zZWc7Cm1haW4oKXsKCWlvczo6c3luY193aXRoX3N0ZGlvKDApOwoJY2luLnRpZSgwKTsKCWNpbj4+bj4+ZDsKCWZvcihpbnQgaT0xO2k8PW47aSsrKWNpbj4+YVtpXSxwW2ldPXBbaS0xXSthW2ldOwoJc2VnLmIoMSwxLG4pOwoJaW50IFE7Y2luPj5ROwoJZm9yKGludCBpPTEsTCxSO2k8PVE7aSsrKWNpbj4+TD4+UixxW1JdLnB1c2hfYmFjayh7TCxpfSk7Cgl2ZWN0b3I8cGFpcjxpbnQsaW50Pj5zdGs9e3stSU5GLDB9fTsKCWZvcihpbnQgaT0xO2k8PW47aSsrKXsKCQlpbnQgTD1pLHY9YVtpXTsKCQl3aGlsZShzdGsuYmFjaygpLmZpcnN0PnYpewoJCQlpbnQgYz0oc3RrLmJhY2soKS5maXJzdC12K2QtMSkvZDsKCQkJc2VnLnUoMSwxLG4sc3RrLmJhY2soKS5zZWNvbmQsTC0xLC1jKmQpOwoJCQlMPXN0ay5iYWNrKCkuc2Vjb25kOwoJCQl2PXNlZy5ncygxLDEsbixMLEwpOwoJCQlzdGsucG9wX2JhY2soKTsKCQl9CgkJc3RrLnB1c2hfYmFjayh7YVtpXSxMfSk7CgkJZm9yKGF1dG8gW2wsaWRdOnFbaV0pewoJCQlpbnQgc3VtPXNlZy5ncygxLDEsbixsLGkpOwoJCQlpZihzZWcuZ20oMSwxLG4sbCxpKTwwKWFuc1tpZF09LTE7CgkJCWVsc2UgYW5zW2lkXT0oKHBbaV0tcFtsLTFdKS1zdW0pL2Q7CgkJfQoJfQoJZm9yKGludCBpPTE7aTw9UTtpKyspY291dDw8YW5zW2ldPDwiXG4iOwp9