#include "bits/stdc++.h"
using namespace std;
#define int long long
const int INF = 1e12;
int sz;
vector<int> fenwick;
void update(int n, int v) {
for (; n <= sz; n += n & -n) fenwick[n] = max(fenwick[n], v);
}
int query(int n) {
int ans = INT_MIN;
for (; n; n -= n & -n) ans = max(ans, fenwick[n]);
return ans;
}
signed main() {
int N, Q, l, r, k;
cin >> N >> Q;
vector<int> W(N), A, B;
for (int i = 0; i < N; i++) cin >> W[i];
A = B = W;
sort(B.begin(), B.end());
B.erase(unique(B.begin(), B.end()), B.end());
for (int i = 0; i < N; i++) A[i] = lower_bound(B.begin(), B.end(), W[i]) - B.begin();
while (Q--) {
cin >> l >> r >> k;
l--, r--;
sz = B.size();
fenwick = vector<int>(sz + 1, INT_MIN);
bool possible = true;
for (int i = l; i <= r; i++) {
update(sz - A[i], W[i]);
if (i != l) {
if (query(sz - A[i] - 1) + W[i] > k) {
possible = false;
break;
}
}
}
cout << (possible ? "1\n" : "0\n");
}
}