#include <iostream>
#include <vector>
using namespace std;
vector<int> Nw;
int d[1<<19], cnt[1<<19];
void Add(int &ans, int l1, int r1, int l2, int r2){
ans += max(0, min(r1, r2) - max(l1, l2) + 1);
}
int main(){
int n, q;
cin>>n>>q;
for (int i=1, lst;i<=n;i++){
cin>>d[i];
if (d[i] > d[i-1]){
Nw.push_back(i);
if (i - 1)
d[i] = ((d[i] + d[i-1]) / d[i-1]) * d[i-1];
lst = i;
}
else
d[i] = d[i-1], cnt[lst]++;
}
for (int i=1;i<=q;i++){
int t, l, r, ans = 0;
cin>>t>>l>>r;
for (int j : Nw){
int L = t - t % d[j];
Add(ans, l, r, -j + L - cnt[j], -j + L);
}
Add(ans, l, r, t, t);
cout<<ans<<'\n';
}
}