#include<cstdio>
#include<algorithm>
#include<vector>
using namespace std;
typedef struct{
int c,m,e,s,n,rank;
void sum(){
this->s=this->c+this->m+this->e;
}
}stu;
bool cmp(stu stu1,stu stu2){
if(stu1.s>stu2.s)return true;
else{
if(stu1.s<stu2.s)return false;
if(stu1.c>stu2.c)return true;
else{
if(stu1.c<stu2.c)return false;
if(stu1.m>stu2.m)return true;
else return false;
}
}
}
bool cmp_n(stu stu1,stu stu2){
return stu1.n>stu2.n;
}
vector<stu>stus;
vector<stu>stuss;
stu Stu;
int n;
int main(){
//scanf("%d",&n);
//freopen(("AST"+to_string(n)+".in").c_str(),"r",stdin);
//freopen(("AST"+to_string(n)+".out").c_str(),"w",stdout);
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d%d%d%d",&Stu.n,&Stu.c,&Stu.m,&Stu.e);
Stu.sum();
stus.push_back(Stu);
}
stuss=stus;
sort(stus.begin(),stus.end(),cmp);
for(int i=0;i<stuss.size();i++)
for(int j=0;j<stus.size();j++)
if(stuss[i].n==stus[j].n)stuss[i].rank=j+1;
scanf("%d",&n);
sort(stuss.begin(),stuss.end(),cmp_n);
for(int i=0;i<n;i++){
scanf("%d",&Stu.n);
auto iter=lower_bound(stuss.begin(),stuss.end(),Stu,cmp_n);
printf("%d\n",iter->rank);
}
//fclose(stdin);
//fclose(stdout);
return 0;
}
开O2能过,不开后六个点TLE