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);
}
}
}
感觉你们写的都好长。