#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>
using namespace std;
#define int long long
void solve()
{
int n,c;
cin>>n>>c;
vector<int>val(c+1);
for(int i=1,cost,d,h;i<=n;i++)
{
cin>>cost>>d>>h;
val[cost]=max(val[cost],d*h);
}
for(int i=1;i<=c;i++)
for(int j=i;j<=c;j+=i)
val[j]=max(val[j],j/i*val[i]);
for(int i=1;i<=c;i++)val[i]=max(val[i],val[i-1]);
int m;cin>>m;
for(int i=1,D,H;i<=m;i++)
{
cin>>D>>H;
if(val[c]<=D*H)cout<<-1<<'\n';
else cout<<(upper_bound(val.begin(),val.end(),D*H)-val.begin())<<'\n';
}
}
signed main()
{
int T;T=1;
while(T--)solve();
}