#include <bits/stdc++.h>
using namespace std;
int a, b, i, k, n, m, h, j;
int const N = 1e2 + 5;
int kal[N], dal[N];
string sal[N];
int main() {
  cin >> a >> b;
  for (i = 0; i < a; i++) {
    cin >> kal[i];
  }
  for (i = 0; i < b; i++) {
    cin >> sal[i];
  }
  for (i = 0; i < a - 1; i++) {
    for (k = i + 1; k < a; k++) {
      if (kal[k] > kal[i]) {
        swap(kal[i], kal[k]);
      }
    }
  }
  for (i = 0; i < b; i++) {
    dal[i]++;
  }
  for (i = 0; i < b - 1; i++) {
    for (k = i + 1; k < b; k++) {
      if (sal[i] == sal[k] && sal[i] != "0") {
        dal[i]++;
        sal[k] = "0";
      }
    }
  }
  for (i = 0; i < b - 1; i++) {
    for (k = i + 1; k < b; k++) {
      if (dal[k] > dal[i]) {
        swap(dal[i], dal[k]);
      }
    }
  }
  n = 0;
  i = 0;
  while (j != b) {
    j += dal[i];
    if (j <= b) {
      n++;
    }
    i++;
  }
  for (i = 0, h = a - 1; i < n; i++, h -= 1) {
    m = m + dal[i] * kal[h];
  }
  cout << m << " ";
  for (i = 0, m = 0; i < n; i++) {
    m = m + dal[i] * kal[i];
  }
  cout << m;
  return 0;
}
