import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.regex.Pattern;


public class Stavitel {

	public static void main(String[] args) throws IOException {
		BufferedReader buf = new BufferedReader(
				new InputStreamReader(System.in));
		Pattern pattern = Pattern.compile("\\s");
		String line = buf.readLine();
		int n = Integer.parseInt(line);

		for (int j = 0; j < n; j++) {
			line = buf.readLine();
			int dimension = Integer.parseInt(line);

			List<Integer> list1 = new ArrayList<Integer>();
			List<Integer> list2 = new ArrayList<Integer>();
			
			line = buf.readLine();
			String[] split = pattern.split(line);
			for (int i = 0; i < split.length; i++) {
				list1.add(Integer.parseInt(split[i]));
			}
			line = buf.readLine();
			split = pattern.split(line);
			for (int i = 0; i < split.length; i++) {
				list2.add(Integer.parseInt(split[i]));
			}
			
//			System.out.println(list1);
//			System.out.println(list2);
			
			long max = max(list1, list2);
			long min = min(list1, list2);
			System.out.println("Minimalni budova obsahuje "+min+" kostek, maximalni " + max + " kostek.");
			
			
		}
	}

	private static long max(List<Integer> list1, List<Integer> list2) {
		long result = 0;
		for (int i = 0; i < list1.size(); i++) {
			for(int j = 0; j < list2.size(); j++) {
				result += Math.min(list1.get(i), list2.get(j));
			}
		}
		return result;
	}
	
	private static long min(List<Integer> list1, List<Integer> list2) {
		long result = 0;
		
		List<Integer> retained = new ArrayList<Integer>();
		for (int i = 0; i < list1.size(); i++) {
			retained.add(list1.get(i));
		}
		
		retained.retainAll(list2);
		
		for (int i = 0; i < retained.size(); i++) {
			result += retained.get(i);
		}
		
//		Collections.shuffle(list1);
//		Collections.sort(list1);
//		Collections.shuffle(list2);
//		Collections.sort(list2);
//		
//		int idx1 = 0;
//		int idx2 = 0;
		
		for (int i = 0; i < retained.size(); i++) {
			list1.remove(retained.get(i));
		}
		
		for (int i = 0; i < retained.size(); i++) {
			list2.remove(retained.get(i));
		}
		
		for (int i = 0; i < list1.size(); i++) {
			result+=list1.get(i);
		}
		
		for (int i = 0; i < list2.size(); i++) {
			result+=list2.get(i);
		}
		
		return result;
	}

}
