program formula1;
type elenco = array[1..200000] of qword;
var N,Q,i,j, pos, ans :qword;
a, b, c :array[1..2000] of qword;
p, t, valore, id : elenco;
function calcolavalore (aa,bb,cc,tt:qword): qword;
begin
calcolavalore:=aa*tt*tt+bb*tt+cc;
end;
Procedure scambia (var aa,bb: qword);
var x:qword;
begin
x:=aa;
aa:=bb;
bb:=x;
end;
Procedure ordinamento (estremoi,estremos: qword; var v : elenco;var u : elenco; ordinato:boolean);
var inf, sup, medio:qword;
pivot :qword;
begin
inf:=estremoi;
sup:=estremos;
medio:= (estremoi+estremos) div 2;
pivot:=v[medio];
repeat
if (ordinato) then
begin
while (v[inf]>pivot) do inf:=inf+1;
while (v[sup]<pivot) do sup:=sup-1;
end;
if inf<=sup then
begin
scambia(v[inf],v[sup]);
scambia(u[inf],u[sup]);
inf:=inf+1;
sup:=sup-1;
end;
until inf>sup;
if (estremoi<sup) then ordinamento(estremoi,sup,v,u,ordinato);
if (inf<estremos) then ordinamento(inf,estremos,v,u,ordinato);
end;
Procedure ordinamento1 (estremoi,estremos: qword; var v : elenco; ordinato:boolean);
var inf, sup, medio:qword;
pivot :qword;
begin
inf:=estremoi;
sup:=estremos;
medio:= (estremoi+estremos) div 2;
pivot:=v[medio];
repeat
if (ordinato) then
begin
while (v[inf]<pivot) do inf:=inf+1;
while (v[sup]>pivot) do sup:=sup-1;
end;
if inf<=sup then
begin
scambia(v[inf],v[sup]);
inf:=inf+1;
sup:=sup-1;
end;
until inf>sup;
if (estremoi<sup) then ordinamento1(estremoi,sup,v,ordinato);
if (inf<estremos) then ordinamento1(inf,estremos,v,ordinato);
end;
procedure controlla (var v: elenco; var u : elenco);
var h, w,z, inff,supp : qword;
temp : elenco;
begin
h:=1;
while ((v[h]<>v[pos]) and (h<=N)) do h:=h+1;
inff:=h;
w:=N;
while ((v[w]<>v[pos]) and (w>=1)) do w:=w-1;
supp:=w;
z:=1;
if inff=supp then ans:=u[pos]
else
begin
for h:=inff to supp do
begin
temp[z]:=u[h];
z:=z+1;
end;
ordinamento1(1,z-1,temp,true);
ans:=temp[pos-inff+1] ;
end;
end;
begin
(*assign(input, 'input.txt'); reset(input);
assign(output, 'output.txt'); rewrite(output); *)
readln(N);
for i:=1 to N do begin readln(a[i],b[i],c[i]); id[i]:=i; end;
readln(Q);
for i:=1 to Q do
begin
readln (p[i],t[i]);
pos:=p[i];
for j:=1 to N do valore[j]:=calcolavalore(a[j],b[j],c[j],t[i]);
ordinamento(1,N,valore, id, true);
controlla (valore, id);
writeln(ans);
for j:=1 to N do begin valore[j]:=0; id[j]:=j; end;
end;
end.
cHJvZ3JhbSBmb3JtdWxhMTsKdHlwZSBlbGVuY28gPSBhcnJheVsxLi4yMDAwMDBdIG9mIHF3b3JkOwp2YXIgTixRLGksaiwgcG9zLCBhbnMgOnF3b3JkOwogICAgYSwgYiwgYyA6YXJyYXlbMS4uMjAwMF0gb2YgcXdvcmQ7CiAgICBwLCB0LCB2YWxvcmUsIGlkIDogZWxlbmNvOwogICAgCmZ1bmN0aW9uIGNhbGNvbGF2YWxvcmUgKGFhLGJiLGNjLHR0OnF3b3JkKTogcXdvcmQ7CgpiZWdpbgogICBjYWxjb2xhdmFsb3JlOj1hYSp0dCp0dCtiYip0dCtjYzsKZW5kOyAgIAogICAgClByb2NlZHVyZSBzY2FtYmlhICh2YXIgYWEsYmI6IHF3b3JkKTsKdmFyIHg6cXdvcmQ7CmJlZ2luCiAgIHg6PWFhOwogICBhYTo9YmI7CiAgIGJiOj14OwplbmQ7ICAKUHJvY2VkdXJlIG9yZGluYW1lbnRvIChlc3RyZW1vaSxlc3RyZW1vczogcXdvcmQ7IHZhciB2IDogZWxlbmNvO3ZhciB1IDogZWxlbmNvOyBvcmRpbmF0bzpib29sZWFuKTsKdmFyIGluZiwgc3VwLCBtZWRpbzpxd29yZDsKICAgIHBpdm90IDpxd29yZDsKYmVnaW4KICAgIGluZjo9ZXN0cmVtb2k7CiAgICBzdXA6PWVzdHJlbW9zOwogICAgbWVkaW86PSAoZXN0cmVtb2krZXN0cmVtb3MpIGRpdiAyOwogICAgcGl2b3Q6PXZbbWVkaW9dOwogICAgcmVwZWF0CiAgICAgIGlmIChvcmRpbmF0bykgdGhlbgogICAgICAgICBiZWdpbgogICAgICAgICAgICB3aGlsZSAodltpbmZdPnBpdm90KSBkbyAgaW5mOj1pbmYrMTsKICAgICAgICAgICAgd2hpbGUgKHZbc3VwXTxwaXZvdCkgZG8gIHN1cDo9c3VwLTE7CiAgICAgICAgIGVuZDsKICAgICAgaWYgaW5mPD1zdXAgdGhlbgogICAgICAgYmVnaW4KICAgICAgICAgc2NhbWJpYSh2W2luZl0sdltzdXBdKTsKICAgICAgICAgc2NhbWJpYSh1W2luZl0sdVtzdXBdKTsKICAgICAgICAgaW5mOj1pbmYrMTsKICAgICAgICAgc3VwOj1zdXAtMTsKICAgICAgIGVuZDsKICAgIHVudGlsIGluZj5zdXA7CiAgICBpZiAoZXN0cmVtb2k8c3VwKSB0aGVuIG9yZGluYW1lbnRvKGVzdHJlbW9pLHN1cCx2LHUsb3JkaW5hdG8pOwogICAgaWYgKGluZjxlc3RyZW1vcykgdGhlbiBvcmRpbmFtZW50byhpbmYsZXN0cmVtb3Msdix1LG9yZGluYXRvKTsKZW5kOwpQcm9jZWR1cmUgb3JkaW5hbWVudG8xIChlc3RyZW1vaSxlc3RyZW1vczogcXdvcmQ7IHZhciB2IDogZWxlbmNvOyBvcmRpbmF0bzpib29sZWFuKTsKdmFyIGluZiwgc3VwLCBtZWRpbzpxd29yZDsKICAgIHBpdm90IDpxd29yZDsKYmVnaW4KICAgIGluZjo9ZXN0cmVtb2k7CiAgICBzdXA6PWVzdHJlbW9zOwogICAgbWVkaW86PSAoZXN0cmVtb2krZXN0cmVtb3MpIGRpdiAyOwogICAgcGl2b3Q6PXZbbWVkaW9dOwogICAgcmVwZWF0CiAgICAgIGlmIChvcmRpbmF0bykgdGhlbgogICAgICAgICBiZWdpbgogICAgICAgICAgICB3aGlsZSAodltpbmZdPHBpdm90KSBkbyAgaW5mOj1pbmYrMTsKICAgICAgICAgICAgd2hpbGUgKHZbc3VwXT5waXZvdCkgZG8gIHN1cDo9c3VwLTE7CiAgICAgICAgIGVuZDsKICAgICAgaWYgaW5mPD1zdXAgdGhlbgogICAgICAgYmVnaW4KICAgICAgICAgc2NhbWJpYSh2W2luZl0sdltzdXBdKTsKICAgICAgICAgaW5mOj1pbmYrMTsKICAgICAgICAgc3VwOj1zdXAtMTsKICAgICAgIGVuZDsKICAgIHVudGlsIGluZj5zdXA7CiAgICBpZiAoZXN0cmVtb2k8c3VwKSB0aGVuIG9yZGluYW1lbnRvMShlc3RyZW1vaSxzdXAsdixvcmRpbmF0byk7CiAgICBpZiAoaW5mPGVzdHJlbW9zKSB0aGVuIG9yZGluYW1lbnRvMShpbmYsZXN0cmVtb3MsdixvcmRpbmF0byk7CmVuZDsKcHJvY2VkdXJlIGNvbnRyb2xsYSAodmFyIHY6IGVsZW5jbzsgdmFyIHUgOiBlbGVuY28pOwp2YXIgaCwgdyx6LCBpbmZmLHN1cHAgOiBxd29yZDsKICAgIHRlbXAgOiBlbGVuY287CmJlZ2luCiAgICBoOj0xOyAKICAgIHdoaWxlICgodltoXTw+dltwb3NdKSBhbmQgKGg8PU4pKSAgZG8gaDo9aCsxOwogICAgaW5mZjo9aDsKICAgIHc6PU47CiAgICB3aGlsZSAoKHZbd108PnZbcG9zXSkgYW5kICh3Pj0xKSkgIGRvIHc6PXctMTsKICAgIHN1cHA6PXc7IAogICAgejo9MTsKICAgIGlmIGluZmY9c3VwcCB0aGVuICBhbnM6PXVbcG9zXQogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgIGJlZ2luCiAgICAgICAgICAgICAgICAgICAgIGZvciBoOj1pbmZmIHRvIHN1cHAgZG8gCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVnaW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBbel06PXVbaF07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB6Oj16KzE7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kOwogICAgICAgICAgICAgICAgICAgIG9yZGluYW1lbnRvMSgxLHotMSx0ZW1wLHRydWUpOwogICAgICAgICAgICAgICAgICAgYW5zOj10ZW1wW3Bvcy1pbmZmKzFdIDsgCiAgICAgICAgICAgICAgICAgZW5kOyAgIAplbmQ7IAoKYmVnaW4KICAgICAgICAgKCphc3NpZ24oaW5wdXQsICAnaW5wdXQudHh0Jyk7ICByZXNldChpbnB1dCk7CiAgICAgICAgIGFzc2lnbihvdXRwdXQsICdvdXRwdXQudHh0Jyk7IHJld3JpdGUob3V0cHV0KTsJKikKICAgICAgICByZWFkbG4oTik7Cglmb3IgaTo9MSB0byBOIGRvIGJlZ2luIHJlYWRsbihhW2ldLGJbaV0sY1tpXSk7IGlkW2ldOj1pOyBlbmQ7CglyZWFkbG4oUSk7Cglmb3IgaTo9MSB0byBRIGRvCgkgICAgICAgICAgICAgIGJlZ2luCgkgICAgICAgICAgICAgICAgcmVhZGxuIChwW2ldLHRbaV0pOyAKCSAgICAgICAgICAgICAgICBwb3M6PXBbaV07CgkgICAgICAgICAgICAgICAgZm9yIGo6PTEgdG8gTiBkbyB2YWxvcmVbal06PWNhbGNvbGF2YWxvcmUoYVtqXSxiW2pdLGNbal0sdFtpXSk7CgkgICAgICAgICAgICAgICAgb3JkaW5hbWVudG8oMSxOLHZhbG9yZSwgaWQsIHRydWUpOwoJICAgICAgICAgICAgICAgIGNvbnRyb2xsYSAodmFsb3JlLCBpZCk7CgkgICAgICAgICAgICAgICAgd3JpdGVsbihhbnMpOwoJICAgICAgICAgICAgICAgIGZvciBqOj0xIHRvIE4gZG8gYmVnaW4gdmFsb3JlW2pdOj0wOyBpZFtqXTo9ajsgZW5kOwoJICAgICAgICAgICAgICBlbmQ7CgkgICAgICAgICAgICAgIAplbmQu