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
26
27
#include <bits/stdc++.h>
using namespace std;

const long long MOD = 1000000007;

int main(){
	int ile_wydarzen, ile_zapytan;
	cin >> ile_wydarzen >> ile_zapytan;
	vector<pair<long long, long long>>wydarzenia(ile_wydarzen+1);
	wydarzenia[0] = {0, 0};
	for (int i = 1; i <= ile_wydarzen; i++){
		cin >> wydarzenia[i].first >> wydarzenia[i].second;
	}
	long long wojownicy, przeszle, ile;
	for (int i = 1; i <= ile_zapytan; i++){
		cin >> wojownicy >> przeszle >> ile;
		for (int j = przeszle+1; j <= ile; j++){
			//cout << wojownicy << " " << (wojownicy+wydarzenia[j].first%MOD) << " " << (wojownicy*wydarzenia[j].second%MOD) << '\n';
			long long a = (wojownicy+wydarzenia[j].first);
			long long b = ((long long)wojownicy*wydarzenia[j].second);
			wojownicy = max(a, b)%MOD;
			//cout << j << ": " << wojownicy << endl;
		}
		cout << wojownicy%MOD << endl;
	}
	return 0;
}