求中位数
//leehaoze
#include <iostream>
#include <deque>
#include <string>
#include <vector>
#include <queue>
#include <cstdio>
#include <stack>
#include <algorithm>
#include <cstring>
#include <cctype>
#include <cstdio>
#include <cmath>
#include <cstdlib>
using namespace std;
const int INF = 1<<29;
#define INC_SAT( val ) (val = ((val)+1 > (val)) ? (val)+1 : (val))
#define ARR_SIZE( a ) ( sizeof( (a) ) / sizeof( (a[0]) ) )
#define ULL unsigned long long
#define MAXN (100 + 5)
struct Food{
char name_[200];
int value_;
};
istream &operator>>(istream&in, Food &A){
in >> A.name_ >> A.value_;
}
int cmp(const Food A,const Food B){
return A.value_ < B.value_;
}
Food data[3][MAXN];
int S,M,D;
void Input(){
scanf("%d%d%d",&S,&M,&D);
for (int i = 0; i < S; ++i) {
scanf("%s%d",data[0][i].name_,&data[0][i].value_);
}
for (int i = 0; i < M; ++i) {
scanf("%s%d",data[1][i].name_,&data[1][i].value_);
}
for (int i = 0; i < D; ++i) {
scanf("%s%d",data[2][i].name_,&data[2][i].value_);
}
}
void Search(){
sort(data[0],data[0] + S,cmp);
sort(data[1],data[1] + M,cmp);
sort(data[2],data[2] + D,cmp);
int ans = data[0][S / 2].value_ + data[1][M / 2].value_ + data[2][D / 2].value_;
printf("%d %s %s %s\n",ans,data[0][S / 2].name_ , data[1][M / 2].name_ , data[2][D / 2].name_);
}
int main() {
#ifdef LOCAL
freopen("IN.txt", "r", stdin);
#endif
int T;
while(scanf("%d",&T) != EOF){
while(T--){
Input();
Search();
}
}
return 0;
}