#include <bits/stdc++.h>
using namespace std;
map<string, int> m;
map<string, int>::iterator it;
string s;
int N, M;
int val[105];
int temp[105];
int ct;
int ans;
int main() {
  int i, j;
  cin >> N;
  cin >> M;
  for (i = 0; i < N; i++) {
    cin >> val[i];
  }
  sort(val, val + N);
  for (i = 0; i < M; i++) {
    cin >> s;
    m[s]++;
  }
  for (it = m.begin(); it != m.end(); it++) {
    temp[ct++] = -(*it).second;
  }
  sort(temp, temp + ct);
  j = 0;
  for (i = 0; i < ct; i++) {
    ans += -temp[i] * val[j];
    j++;
  }
  printf("%d ", ans);
  ans = 0;
  j = N - 1;
  for (i = 0; i < ct; i++) {
    ans += -temp[i] * val[j];
    j--;
  }
  printf("%d\n", ans);
}
