import java.io.*;
import java.util.*;
class Solution {
static ArrayList<Integer> gyu, in;
static int gwin, glose;
static int[] numbers;
static boolean[] isSelected;
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int T = Integer.parseInt(br.readLine());
isSelected = new boolean[9];
numbers = new int[9];
for (int test_case = 1; test_case <= T; test_case++) {
in = new ArrayList<Integer>();
for (int i = 1; i <= 18; i++) {
in.add(i);
}
gyu = new ArrayList<Integer>();
StringTokenizer st = new StringTokenizer(br.readLine());
for (int i = 0; i < 9; i++) {
int n = Integer.parseInt(st.nextToken());
gyu.add(n);
in.remove(Integer.valueOf(n));
}
gwin = 0;
glose = 0;
permutation(0);
sb.append("#").append(test_case).append(" ").append(gwin).append(" ").append(glose).append("\n");
}
System.out.println(sb);
}
static void permutation(int cnt) {
if (cnt == 9) {
int gscore = 0;
int iscore = 0;
for (int i = 0; i < numbers.length; i++) {
if (gyu.get(i) > numbers[i])
gscore += gyu.get(i) + numbers[i];
if (gyu.get(i) < numbers[i])
iscore += gyu.get(i) + numbers[i];
}
if (gscore > iscore) gwin++;
if (gscore < iscore) glose++;
return;
}
for (int i = 0; i < 9; i++) {
if (isSelected[i]) continue;
numbers[cnt] = in.get(i);
isSelected[i] = true;
permutation(cnt + 1);
isSelected[i] = false;
}
}
}