#include<iostream> #include<vector> #include<cstdio> #include<algorithm> using namespace std; struct nation { long double gold; long double all; long double area; int id; int rate1; int rate2; int rate3; int rate4; int bestrate; int sortway; }; int cmpway; bool cmp(nation a,nation b) { if(cmpway==0) return a.id<b.id; else if(cmpway==1)return a.gold>b.gold; else if(cmpway==2) return a.all>b.all; else if(cmpway==3) return a.gold/a.area>b.gold/b.area; else if(cmpway==4) return a.all/a.area>b.all/b.area; } int main() { int n,m; bool flag=0; while(cin>>n>>m) { nation p[n]; vector<nation> vn; double gold,all,area; for(int i=0;i<n;i++) { scanf("%lf%lf%lf",&gold,&all,&area); p[i].gold=gold; p[i].all=all; p[i].area=area; p[i].id=i; } int temp; for(int i=0;i<m;i++) { scanf("%d",&temp); vn.push_back(p[temp]); vn[i].id=i; } if(m>0) { cmpway=1; sort(vn.begin(),vn.end(),cmp); for(int i=0;i<m;i++) { vn[i].rate1=i; } for(int i=1;i<m;i++) { if(vn[i].gold==vn[i-1].gold) vn[i].rate1=vn[i-1].rate1; } cmpway=2; sort(vn.begin(),vn.end(),cmp); for(int i=0;i<m;i++) { vn[i].rate2=i; } for(int i=1;i<m;i++) { if(vn[i].all==vn[i-1].all) vn[i].rate2=vn[i-1].rate2; } cmpway=3; sort(vn.begin(),vn.end(),cmp); for(int i=0;i<m;i++) { vn[i].rate3=i; } for(int i=1;i<m;i++) { if(vn[i].gold/vn[i].area==vn[i-1].gold/vn[i-1].area) vn[i].rate3=vn[i-1].rate3; } cmpway=4; sort(vn.begin(),vn.end(),cmp); for(int i=0;i<m;i++) { vn[i].rate4=i; } for(int i=1;i<m;i++) { if(vn[i].all/vn[i].area==vn[i-1].all/vn[i-1].area) vn[i].rate4=vn[i-1].rate4; } cmpway=0; sort(vn.begin(),vn.end(),cmp); for(int i=0;i<m;i++) { vn[i].bestrate=vn[i].rate1; vn[i].sortway=1; if(vn[i].rate2<vn[i].bestrate) { vn[i].bestrate=vn[i].rate2; vn[i].sortway=2; } if(vn[i].rate3<vn[i].bestrate) { vn[i].bestrate=vn[i].rate3; vn[i].sortway=3; } if(vn[i].rate4<vn[i].bestrate) { vn[i].bestrate=vn[i].rate4; vn[i].sortway=4; } } for(int i=0;i<m;i++) printf("%d:%d\n",vn[i].bestrate+1,vn[i].sortway); } cout<<endl; } }