#include <bits/stdc++.h>
using namespace std;
vector<int> ft;
void upd(int p, int v) {
while (p < ft.size()) {
ft[p] += v;
p += p & (-p);
}
}
int query(int p) {
int sum = 0;
while (p > 0) {
sum += ft[p];
p -= p & (-p);
}
return sum;
}
int invquery(int p) { return query(ft.size() - 1) - query(p); }
int main() {
int n, m;
cin >> n >> m;
vector<int> books(n, 0);
for (int i = 0; i < n; ++i) {
cin >> books[i];
}
int l, r, mood;
for (int i = 0; i < m; ++i) {
cin >> l >> r >> mood;
bool pass = true;
ft = vector<int>(int(1e9) + 5, 0);
for (int j = l - 1; j < r; ++j) {
if (mood <= books[j]) {
cout << 0 << '\n';
pass = false;
break;
}
if (invquery(books[j]) > 0 && invquery(mood - books[j]) > 0) {
cout << 0 << '\n';
pass = false;
break;
}
upd(books[j], 1);
}
if (pass) {
cout << 1 << '\n';
}
}
}