import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Stavitel {
	private static String line;
	private static String[] nums;
	private static int[] stlpec;
	private static int[] riadok;
	private static int maximum;
	private static int minimum;

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		line = br.readLine();
		int pocetSad = Integer.parseInt(line);
		while (pocetSad-- > 0) {
			maximum = 0;
			minimum = 0;

			line = br.readLine();
			int rozmer = Integer.parseInt(line);
			riadok = new int[rozmer];
			stlpec = new int[rozmer];
			line = br.readLine();
			nums = line.split(" ");
			int sumStlpec = 0;
			int sumRiadok = 0;
			for (int i = 0; i < riadok.length; i++) {
				riadok[i] = Integer.parseInt(nums[i]);
				sumRiadok += riadok[i];
			}

			line = br.readLine();
			nums = line.split(" ");
			for (int i = 0; i < stlpec.length; i++) {
				stlpec[i] = Integer.parseInt(nums[i]);
				sumStlpec += stlpec[i];
			}

			najdiMaximum();
			minimum = Math.max(sumRiadok, sumStlpec);
			vypis();
		}
	}

	private static void najdiMaximum() {
		for (int i = 0; i < riadok.length; i++) {
			for (int j = 0; j < stlpec.length; j++) {
				maximum = maximum + Math.min(riadok[i], stlpec[j]);
			}

		}
	}

	private static void vypis() {
		System.out.println("Minimalni budova obsahuje " + minimum
				+ " kostek, maximalni " + maximum + " kostek.");

	}
}
