/*
* @Author: hungeazy
* @Date: 2026-03-04 23:24:15
* @Last Modified by: hungeazy
* @Last Modified time: 2026-03-13 21:11:37
*/
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 100010;
int n,q,a[N];
vector<int> pos[N];
signed main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
cin >> n >> q;
for (int i = 1; i <= n; i++)
{
cin >> a[i];
pos[a[i]].push_back(i);
}
for (int i = 1; i <= q; i++)
{
int l,r,x;
cin >> l >> r >> x;
int L = 0, R = pos[x].size()-1, jMin = -1, jMax = -1;
while (L <= R)
{
int mid = (L+R)>>1;
if (pos[x][mid] >= l)
{
jMin = mid;
R = mid-1;
}
else L = mid+1;
}
L = 0, R = pos[x].size()-1;
while (L <= R)
{
int mid = (L+R)>>1;
if (pos[x][mid] <= r)
{
jMax = mid;
L = mid+1;
}
else R = mid-1;
}
if (jMin != -1 and jMax != -1) cout << jMax-jMin+1 << endl;
else cout << 0 << endl;
}
return 0;
}
LyoKKiBAQXV0aG9yOiBodW5nZWF6eQoqIEBEYXRlOiAgIDIwMjYtMDMtMDQgMjM6MjQ6MTUKKiBATGFzdCBNb2RpZmllZCBieTogICBodW5nZWF6eQoqIEBMYXN0IE1vZGlmaWVkIHRpbWU6IDIwMjYtMDMtMTMgMjE6MTE6MzcKKi8KI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgaW50IGxvbmcgbG9uZyAKY29uc3QgaW50IE4gPSAxMDAwMTA7CmludCBuLHEsYVtOXTsKdmVjdG9yPGludD4gcG9zW05dOwoKc2lnbmVkIG1haW4oKQp7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsgCiAgICBjaW4udGllKE5VTEwpOyBjb3V0LnRpZShOVUxMKTsKICAgIGNpbiA+PiBuID4+IHE7CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspIAogICAgewogICAgICAgIGNpbiA+PiBhW2ldOwogICAgICAgIHBvc1thW2ldXS5wdXNoX2JhY2soaSk7CiAgICB9CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBxOyBpKyspCiAgICB7CiAgICAgICAgaW50IGwscix4OwogICAgICAgIGNpbiA+PiBsID4+IHIgPj4geDsKICAgICAgICBpbnQgTCA9IDAsIFIgPSBwb3NbeF0uc2l6ZSgpLTEsIGpNaW4gPSAtMSwgak1heCA9IC0xOwogICAgICAgIHdoaWxlIChMIDw9IFIpCiAgICAgICAgewogICAgICAgICAgICBpbnQgbWlkID0gKEwrUik+PjE7CiAgICAgICAgICAgIGlmIChwb3NbeF1bbWlkXSA+PSBsKSAKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgak1pbiA9IG1pZDsKICAgICAgICAgICAgICAgIFIgPSBtaWQtMTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIEwgPSBtaWQrMTsKICAgICAgICB9CiAgICAgICAgTCA9IDAsIFIgPSBwb3NbeF0uc2l6ZSgpLTE7CiAgICAgICAgd2hpbGUgKEwgPD0gUikKICAgICAgICB7CiAgICAgICAgICAgIGludCBtaWQgPSAoTCtSKT4+MTsKICAgICAgICAgICAgaWYgKHBvc1t4XVttaWRdIDw9IHIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGpNYXggPSBtaWQ7CiAgICAgICAgICAgICAgICBMID0gbWlkKzE7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBSID0gbWlkLTE7CiAgICAgICAgfQogICAgICAgIGlmIChqTWluICE9IC0xIGFuZCBqTWF4ICE9IC0xKSBjb3V0IDw8IGpNYXgtak1pbisxIDw8IGVuZGw7CiAgICAgICAgZWxzZSBjb3V0IDw8IDAgPDwgZW5kbDsKICAgIH0KICAgIHJldHVybiAwOwp9