import java.util.*;
public class Main {
	public static void main(String aegs[]) {
		Scanner sc = new Scanner(System.in);
		int n, m;
		int[] val = new int[1001];
		while (sc.hasNext()) {
			n = sc.nextInt();
			m = sc.nextInt();
			for (int i = 0; i < n; ++i) {
				val[i] = sc.nextInt();
			}
			Map<String, Integer> mp = new <String, Integer>HashMap();
			String name;
			for (int i = 0; i < m; ++i) {
				name = sc.next();
				int num = mp.getOrDefault(name, 0) + 1;
				mp.put(name, num);
			}
			Arrays.sort(val, 0, n);
			List<Integer> list = new ArrayList<Integer>(mp.values());
			int size = list.size();
		    Integer[] array = (Integer[])list.toArray(new Integer[size]);
			Arrays.sort(array);
			int max = 0, min = 0;
			int i = 0;
			for (Integer num : array) {
				max += val[n - size + i] * num;
				if (size - 1 - i >= 0) {
					min += num * val[size - 1 - i];
				}
				i++;
			}
			System.out.println(min + " " + max);
		}
	}
}


感觉你们写的都好长。