#include <bits/stdc++.h>
using namespace std;
map<string, int> mp;
int n, m, cc;
char s[1010];
int a[1010], cnt[1010];
void getcc(string s) {
  if (mp.find(s) == mp.end()) mp[s] = cc++;
  cnt[mp[s]]++;
}
int main() {
  int i, j, k;
  while (scanf("%d%d", &n, &m) > 0) {
    for (i = 0; i < n; i++) scanf("%d", &a[i]);
    sort(a, a + n);
    mp.clear();
    cc = 0;
    memset(cnt, 0, sizeof(cnt));
    for (i = 0; i < m; i++) {
      scanf("%s", s);
      getcc(s);
    }
    sort(cnt, cnt + cc);
    int ma = 0, mi = 0;
    for (i = 0; i < cc; i++) {
      mi += a[i] * cnt[cc - 1 - i];
      ma += a[n - 1 - i] * cnt[cc - 1 - i];
    }
    printf("%d %d\n", mi, ma);
  }
  return 0;
}
