#include <bits/stdc++.h>
#define fst first
#define snd second
#define pb push_back
#define SZ(x) (int)x.size()
#define ALL(x) x.begin(),x.end()
#define forn(i,a,b) for(int i = a; i<b;i++)
#define mset(a,v) memset(a,v,sizeof(a))
#define FIN ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
using namespace std;
typedef long long ll;
const int MAXN = 2000+5;
const int MAXQ = 500000+5;
ll n,l;
ll x[MAXN];
ll q;
ll s[MAXQ];
ll g[MAXQ];
ll t[MAXQ];
ll dp[MAXN][MAXN][4][4];
/*
ll f(ll l, ll r, ll lor, ll g){
ll &res = dp[l][r][lor];
if(res!=-1) return res;
if(l==r){
//cout<<1+(n)*abs(x[l]-g)<<" :: "<<l<<" "<<r<<" "<<lor<<" "<<g<<'\n';
return 1 + (n+1)*abs(x[l]-g);
}
res = 0;
ll collect = l + ((n-1)-r);
ll lcost = (x[l+1] - x[l]) * (collect+2) + 1;
ll rcost = (x[r] - x[r-1]) * (collect+2) + 1;
if(lor==0){
res=f(l+1,r,0,g)+lcost;
res=min( res , f(l,r,1,g)+(collect+1)*(x[r]-x[l]));
}else{
res=f(l,r-1,1,g)+rcost;
res=min( res , f(l,r,0,g)+(collect+1)*(x[r]-x[l]));
}
//cout<<res<<" :: "<<l<<" "<<r<<" "<<lor<<" "<<g<<'\n';
return res;
}
*/
ll frev(ll l, ll r, ll lora, ll lorf){
ll &res=dp[l][r][lora][lorf];
if(res!=-1) return res;
if(l==0&&r==n-1){
//cout<<" -- :: "<<l<<" "<<r<<" "<<lora<<" "<<lorf<<'\n';
if(lora==lorf) return 0;
else return 100000000000;
}
res=1000000000000;
ll collect = l+((n-1)-r);
ll lcost = (x[l] - x[l-1]) * (collect+1) +1;
ll rcost = (x[r+1] - x[r]) * (collect+1) +1;
if(lora==0){
if(l-1>=0) res=frev(l-1,r,0,lorf)+lcost;
res=min(res, frev(l,r,1,lorf)+(collect+1)*(x[r]-x[l]));
}else{
if(r+1<n) res=frev(l,r+1,1,lorf)+rcost;
res=min(res , frev(l,r,0,lorf)+(collect+1)*(x[r]-x[l]));
}
//cout<<res<<" :: "<<l<<" "<<r<<" "<<lora<<" "<<lorf<<'\n';
return res;
}
int main(){
cin>>n>>l;
vector<ll> xx(n); forn(i,0,n) cin>>xx[i]; sort(ALL(xx));
forn(i,0,n) x[i]=xx[i];
mset(dp,-1);
ll a,b; a=b=1000000000000;
vector<ll> prefa(n);
vector<ll> suffa(n);
vector<ll> prefb(n);
vector<ll> suffb(n);
forn(j,0,n){
a = min(frev(j,j,0,0),frev(j,j,1,0));
b = min(frev(j,j,0,1),frev(j,j,1,1));
prefa[j]=a+1-((n+1)*x[j]);
suffa[j]=a+1+((n+1)*x[j]);
prefb[j]=b+1-((n+1)*x[j]);
suffb[j]=b+1+((n+1)*x[j]);
}
forn(j,1,n) prefa[j]=min(prefa[j],prefa[j-1]);
for(int j = n-2; j>=0; j--) suffa[j]=min(suffa[j],suffa[j+1]);
forn(j,1,n) prefb[j]=min(prefb[j],prefb[j-1]);
for(int j = n-2; j>=0; j--) suffb[j]=min(suffb[j],suffb[j+1]);
/*cout<<"------------------\n";
forn(i,0,n) cout<<prefa[i]<<" "; cout<<'\n';
forn(i,0,n) cout<<suffa[i]<<" "; cout<<'\n';
cout<<"------------------\n";
forn(i,0,n) cout<<prefb[i]<<" "; cout<<'\n';
forn(i,0,n) cout<<suffb[i]<<" "; cout<<'\n';
*/
cin>>q;
forn(i,0,q){
cin>>s[i]>>g[i]>>t[i];
/*mset(dp,-1);
ll res = f(0,n-1,0,g[i])+abs(x[0]-s[i]);
res=min( res , f(0,n-1,1,g[i])+abs(x[n-1]-s[i]));*/
ll resa;
ll res=1000000000;
ll resb;
resa=resb=res;
/*forn(j,0,n){
cout<<j<<" "<<j<<" 0 0 -> "<<frev(j,j,0,0) + abs(s[i]-x[0]) + 1 + (n+1)*abs(g[i]-x[j]) <<'\n';
cout<<j<<" "<<j<<" 0 1 -> "<<frev(j,j,0,1) + abs(s[i]-x[n-1]) + 1 + (n+1)*abs(g[i]-x[j]) <<'\n';
cout<<j<<" "<<j<<" 1 0 -> "<<frev(j,j,1,0) + abs(s[i]-x[0]) + 1 + (n+1)*abs(g[i]-x[j]) <<'\n';
cout<<j<<" "<<j<<" 1 1 -> "<<frev(j,j,1,1) + abs(s[i]-x[n-1]) + 1 + (n+1)*abs(g[i]-x[j]) <<'\n';
}*/
ll I = upper_bound(ALL(xx),g[i])-xx.begin();
if(I-1>=0) resa=min(resa,prefa[I-1]+(n+1)*g[i]) , resb=min(resb,prefb[I-1]+(n+1)*g[i]);
if(I<n) resa=min(resa,suffa[I]-(n+1)*g[i]) , resb=min(resb,suffb[I]-(n+1)*g[i]);
/*ll prb = res;
ll sub = res;
if(I-1>=0 ) prb = prefb[I-1]+(n+1)*g[i];
if(I<n) sub = suffb[I]-(n+1)*g[i];
//cout<<prb<<" "<<sub<<'\n';*/
resa+=abs(s[i]-x[0]);
resb+=abs(s[i]-x[n-1]);
//cout<<resa <<" "<<resb<<'\n';
res=min(resa,resb);
//res=min(res,min(na,nb)+1+abs( ((n+1)*g[i]) - ((n+1)*x[j])) );
//cout<<res<<'\n';
if(res<=t[i]) cout<<"Yes\n";
else cout<<"No\n";
}
return 0;
}