1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#pragma GCC optimize("03")
#pragma GCC optimize("unroll-loops")
#include <bits/stdc++.h>
using namespace std;
string out="";
int n, q;
long long x, y, z, MOD=1000000007;
int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cin>>n>>q;
    pair<long long, long long> T[n];
    for(int i=0; i<n; i++)
        cin>>T[i].first>>T[i].second;
    for(int i=0; i<q; i++)
    {
        cin>>x>>y>>z;
        for(int i=y; i<z; i++)
            x=(max(T[i].first+x, T[i].second*x))%MOD;
        out+=to_string(x)+'\n';
    }
    cout<<out;
    return 0;
}