#include<iostream>
using namespace std;
const int N = 5e2 + 10;
int f[N][N][N], cost_[N], be[N], fri[N], n, m, res;
int main()
{
cin >> n >> m;
for (int i = 1; i <= n; i++) {
cin >> cost_[i] >> fri[i] >> be[i];
}
for (int i = 1; i <= n; i++) {
for (int j = 0; j < N; j++) {
if (j < cost_[i]) {
f[i][j][0] = f[i - 1][j][0];
}
else {
f[i][j][0] = max(f[i][j][0], f[i - 1][j - cost_[i]][0] + be[i]);
}
}
}
for (int i = 1; i <= n; i++) {
for (int j = 0; j < N; j++) {
for (int k = 0; k < N; k++) {
f[i][j][k] = f[i - 1][j][k];
if (j >= cost_[i]) {
int tem = max(0, k - fri[i]);
f[i][j][k] = max(f[i][j][k], f[i - 1][j - cost_[i]][tem] + be[i]);
}
}
}
}
for (int i = 1; i <= m; i++) {
int c, fr;
cin >> c >> fr;
res = f[n][c][fr];
cout << res << endl;
}
return 0;
}