#include <bits/stdc++.h>
using namespace std;
long long int dx[] = {-1, +1, 0, 0, +1, -1, +1, -1};
long long int dy[] = {0, 0, -1, +1, +1, +1, -1, -1};
const long long int mx = 1e5 + 123;
bool vis[mx];
vector<long long int> adj[mx];
bool sortByVal(const pair<string, int> &a, const pair<string, int> &b) {
  return (a.second > b.second);
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  ;
  long long int a, b, i, mx = 0, mn = 0, x, y;
  string s;
  cin >> a >> b;
  vector<long long int> c(a);
  map<string, long long int> m;
  for (long long int i = 0; i < a; i++) cin >> c[i];
  sort(c.begin(), c.end());
  for (long long int i = 0; i < b; i++) {
    cin >> s;
    m[s]++;
  }
  vector<pair<string, long long int>> v;
  map<string, long long int>::iterator it;
  for (it = m.begin(); it != m.end(); it++) {
    v.push_back(make_pair(it->first, it->second));
  }
  sort(v.begin(), v.end(), sortByVal);
  x = 0, y = a - 1;
  for (i = 0; i < v.size(); i++) {
    mn += (v[i].second * c[x]);
    mx += (v[i].second * c[y]);
    x++;
    y--;
  }
  cout << mn << " " << mx << endl;
}
