#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e6 + 5;
int n, m;
long long w[MAXN];
long long bad[MAXN];
long long st[21][MAXN];
int lg[MAXN];
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin >> n >> m;
for (int i = 1; i <= n; i++) cin >> w[i];
for (int i = 1; i < n; i++) {
if (w[i] > w[i+1]) bad[i] = w[i] + w[i+1];
else bad[i] = 0;
}
// build logs
for (int i = 2; i <= n; i++)
lg[i] = lg[i/2] + 1;
// build sparse table
for (int i = 1; i < n; i++)
st[0][i] = bad[i];
for (int j = 1; (1 << j) < n; j++) {
for (int i = 1; i + (1 << j) - 1 < n; i++) {
st[j][i] = max(st[j-1][i], st[j-1][i + (1 << (j-1))]);
}
}
while (m--) {
int l, r;
long long k;
cin >> l >> r >> k;
if (l == r) {
cout << 1 << '\n';
continue;
}
int len = r - l;
int j = lg[len];
long long mx = max(st[j][l], st[j][r - (1 << j)]);
cout << (mx <= k) << '\n';
}
return 0;
}