#include <bits/stdc++.h>
using namespace std;
typedef pair<int,int> pii;
struct node {
int s,e,m;
vector<int> v;
int max_inv=0;
node *l, *r;
node(int _s, int _e) {
s=_s,e=_e,m=(s+e)/2;
max_inv=0;
if(s!=e) {
l= new node(s,m);
r = new node(m+1,e);
}
}
void build() {
if(s==e) return;
vector<int> a,b;
for(int i=0;i<e-s+1;i++) {
if(i<=m-s)a.push_back(v[i]);
else b.push_back(v[i]);
}
l->v = a;
r->v = b;
l->build();
r->build();
v = merge(l->v, r->v);
max_inv = max(l->max_inv, r->max_inv);
int lmax=(l->v)[(l->v).size()-1];
int rx = r->bsta(r->s, r->e, lmax);
if(rx!=-1) max_inv = max(max_inv, lmax+rx);
}
vector<int> merge(vector<int> a, vector<int> b) {
vector<int> res;
int pa=0, pb=0;
while(pa<a.size()&&pb<b.size()) {
if(a[pa]<=b[pb]) {
res.push_back(a[pa]);
pa++;
}
else {
res.push_back(b[pb]);
pb++;
}
}
while(pa<a.size()) {
res.push_back(a[pa]);
pa++;
}
while(pb<b.size()) {
res.push_back(b[pb]);
pb++;
}
return res;
}
// largest element less than k (or -1 if not found)
int bsta(int x, int y, int k) {
if(s==x && e==y) {
auto lb = lower_bound(v.begin(),v.end(),k);
if(lb==v.begin()) return -1;
else return *(--lb);
}
if(y<=m) return l->bsta(x,y,k);
else if(x>m) return r->bsta(x,y,k);
return max(l->bsta(x,m,k),r->bsta(m+1,y,k));
}
// range max + largest inversion sum
pii inv_query(int x, int y) {
if(s==x && e==y) return {v[v.size()-1],max_inv};
if(y<=m) return l->inv_query(x,y);
else if(x>m) return r->inv_query(x,y);
else {
pii lres = l->inv_query(x,m);
pii rres = r->inv_query(m+1,y);
int mx = max(lres.first,rres.first);
int max_inv = max(lres.second, rres.second);
int rx = bsta(m+1,y,lres.first);
if(rx!=-1) max_inv = max(max_inv, lres.first + rx);
return {mx, max_inv};
}
}
} *root;
signed main() {
ios::sync_with_stdio(0);
cin.tie(nullptr);
int n,q; cin>>n>>q;
vector<int> a(n); for(int i=0;i<n;i++) cin>>a[i];
root = new node(0, n-1);
root->v = a;
root->build();
for(int i=0;i<q;i++) {
int l,r,k; cin>>l>>r>>k; l--; r--;
int max_inv = (root->inv_query(l,r)).second;
if(max_inv>k) cout<<0;
else cout<<1;
//cout<<max_inv<<"\n";
cout<<"\n";
}
return 0;
}