#include<bits/stdc++.h>
using namespace std;
int dp[501][501],cst[501],be[501],fr[501],n,q,c,f;
void read(int &x){
int fx=1;
x=0;
char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-') fx=-1;ch=getchar();}
while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
x=x*fx;
}
int main(){
read(n);
read(q);
for(int i=1;i<=n;i++){
read(cst[i]);
read(fr[i]);
read(be[i]);
}
for(int i=1;i<=n;i++){
for(int j=500;j>=cst[i];j--){
for(int k=500;k>=0;k--){
if(k<=fr[i]){
dp[j][k]=max(dp[j][k],dp[j-cst[i]][0]+be[i]);
}else if(dp[j-cst[i]][k-fr[i]]){
dp[j][k]=max(dp[j][k],dp[j-cst[i]][k-fr[i]]+be[i]);
}
}
}
}
while(q--){
read(c);
read(f);
printf("%d\n",dp[c][f]);
}
return 0;
}