#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
#define l(a, b, i) for (ll i = a; i < b; i++)
#define rl(a, b, i) for (ll i = a; i >= b; i--)
#define vpair vector<pair<ll, ll>>
#define inf LLONG_MAX
#define ninf LLONG_MIN
int main() {
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
ll N, L, Q, S, G, T; cin >> N >> L; vector<ll> vecX(N + 1, 0);
l(1, N + 1, i) cin >> vecX[i];
sort(vecX.begin() + 1, vecX.end());
cin >> Q;
while (Q--) {
cin >> S >> G >> T;
ll last = vecX[N]; // vị trí quả bóng cuối
ll time = last + 1; // ban đầu mình chạy xuống lấy quả cuối đầu tiên, mất vecX[N] giây chạy + 1 giây nhặt
ll cur = 1; // số bóng hiện tại đã nhặt là 1
rl(N - 1, 1, i) { // h mình sẽ đi ngược từ chỗ quả cuối về vạch 0
ll dist = vecX[i + 1] - vecX[i]; // khoảng cách từ quả trước đến quả này
time += dist * (cur + 1) + 1;
cur++;
}
ll finaldist = vecX[1]; // khoảng cách từ quả 1 đến vạch 0
time += finaldist * (cur + 1); // k +1 nữa vì lần này chạy về vạch 0 th chứ k nhặt quả nào nữa :D
if (time <= T) cout << "Yes" << "\n";
else cout << "No" << "\n";
}
}