import java.util.Arrays;
import java.util.Scanner;

public class Stavitel {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		for(int i = 0; i < n; i++) {
			int k = sc.nextInt();
			int[] front = new int[k];
			int[] side = new int[k];
			for(int j = 0; j < k; j++) {
				front[j] = sc.nextInt();
			}
			for(int j = 0; j < k; j++) {
				side[j] = sc.nextInt();
			}
			System.out.println(
					"Minimalni budova obsahuje "
					+min(front, side)+
					" kostek, maximalni "
					+max(front, side)+
					" kostek.");
		}
	}
	
	static int max(int[] front, int[] side) {
		int sum = 0;
		for(int i = 0; i < front.length; i++) {
			for(int j = 0; j < front.length; j++) {
				sum += Math.min(front[i], side[j]);
			}
		}
		return sum;
	}
	
	static int min(int[] front, int[] side) {
		Arrays.sort(front);
		Arrays.sort(side);
		int sum = 0;
		int frontPos = front.length - 1;
		int sidePos = side.length - 1;
		while(frontPos >= 0 && sidePos >= 0) {
			int f = front[frontPos], s = side[sidePos];
			if(f == s) {
				sum += f;
				frontPos--;
				sidePos--;
			} else {
				int min = Math.min(f, s);
				if(min == f) {
					sum += s;
					sidePos--;
				} else {
					sum += f;
					frontPos--;
				}
			}
		}
		while(frontPos >= 0) {
			sum += front[frontPos--];
		}
		while(sidePos >= 0) {
			sum += side[sidePos--];
		}
		return sum;
	}
}
