//
// Created by xxx on 2023/1/16.
//
#include "iostream"
using namespace std;
class country_117 {
public:
int gold; // 金牌数
int medal; // 奖牌数
int people; // 人口数
// 含参数构造函数:
country_117(int iGold, int iMedal, int iPeople) : gold(iGold), medal(iMedal), people(iPeople) {}
// 默认构造函数:
country_117() {
cin >> gold >> medal >> people;
}
};
int main() {
int N, M; // 国家数(0~N-1),要求排名的国家数
while (cin >> N >> M) { // 输入:输入N与M
country_117 countries[N]; // 输入:触发默认构造函数,对N个国家的数据进行输入
int sortCounty[M];
for (int i = 0; i < M; ++i) cin >> sortCounty[i]; // 输入:需要排序的国家序号
// 金牌总数 奖牌总数 金牌人口比例 奖牌人口比例 => 排名:排名方式
for (int k = 0; k < M; ++k) { // 对于每个需要排序的国家:
int i = sortCounty[k];
int rank = 1, rankTemp, method = 1; // 排名,临时变量,排序方法
// 方式1:金牌总数
for (int j = 0; j < N; ++j) if (countries[j].gold > countries[i].gold) rank++;
// 方式2:奖牌总数
rankTemp = 1;
for (int j = 0; j < N; ++j) if (countries[j].medal > countries[i].medal) rankTemp++;
if (rank > rankTemp) {
rank = rankTemp;
method = 2;
}
// 方式3:金牌人口比例
rankTemp = 1;
for (int j = 0; j < N; ++j)
if ((1.0 * countries[j].gold / countries[j].people) >
1.0 * countries[i].gold / countries[i].people)
rankTemp++;
if (rank > rankTemp) {
rank = rankTemp;
method = 3;
}
// 方式4:奖牌人口比例
rankTemp = 1;
for (int j = 0; j < N; ++j)
if ((1.0 * countries[j].medal / countries[j].people) >
1.0 * countries[i].medal / countries[i].people)
rankTemp++;
if (rank > rankTemp) {
rank = rankTemp;
method = 4;
}
// 人口 =0 的情况:
if (countries[i].people == 0 && countries[i].gold != 0 && rank!=1) method = 3;
if (countries[i].people == 0 && countries[i].medal != 0 && countries[i].gold == 0) method = 4;
cout << rank << ":" << method << endl;
}
cout << endl;
}
return 0;
}