#include <iostream>
#include <map>
#include <string>
#include <algorithm>
#include <cstdio>
#include <vector>
#include <cmath>
using namespace std;
struct maps{
int p;
int mid;
int fin;
};
struct stu{
string name;
int p;
int mid;
int fin=0;
int G;
};
bool cmp(const stu &a,const stu &b){
if(a.G==b.G){
return a.name<b.name;
}
return a.G>b.G;
}
int main()
{
int P,M,N;
scanf("%d %d %d",&P,&M,&N);
map<string,maps> a;
string n;
while(P--){
int p;
char name[21];
getchar();
scanf("%s %d",name,&p);
n=name;
if(p>=200){
a[n].p=p;
a[n].mid=-1;
}
}
while(M--){
int mid;
char name[21];
getchar();
scanf("%s %d",name,&mid);
n=name;
if(!a.count(n)){
continue;
}else{
a[n].mid=mid;
}
}
while(N--){
int fin;
char name[21];
getchar();
scanf("%s %d",name,&fin);
n=name;
if(!a.count(n)){
continue;
}else{
a[n].fin=fin;
}
}
map<string,maps>::iterator iter;
vector<stu> res;
for(iter=a.begin();iter!=a.end();iter++){
int j;
if(iter->second.fin<iter->second.mid){
j=(int)iter->second.mid*0.4+iter->second.fin*0.6+0.5;
}else{
j=iter->second.fin;
}
if(j<60){
continue;
}else{
stu t;
t.name=iter->first;
t.p=iter->second.p;
t.mid=iter->second.mid;
t.fin=iter->second.fin;
t.G=j;
res.push_back(t);
}
}
sort(res.begin(),res.end(),cmp);
for(int i=0;i<res.size();i++){
printf("%s %d %d %d %d\n",res[i].name.data(),res[i].p,res[i].mid,res[i].fin,res[i].G);
}
return 0;
}