#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;   }   