#include <bits/stdc++.h>
using namespace std;
int n, k, m;
int q;
double lev[105];
int num[105];
vector<double> st[105];
double average(vector<double> &v) {
  double res = 0.0;
  for (int i = 0; i < v.size(); i++) {
    res += v[i];
  }
  return res / v.size();
}
int main() {
  double min_ans = 100.0;
  double max_ans = 0.0;
  cin >> n >> k;
  m = n / k;
  for (int i = 0; i < n; i++) {
    cin >> lev[i];
  }
  cin >> q;
  for (int i = 0; i < q; i++) {
    for (int j = 0; j < m; j++) {
      int t;
      cin >> t;
      num[t - 1] = i + 1;
    }
  }
  for (int i = 0; i < n; i++) {
    st[num[i]].push_back(lev[i]);
  }
  sort(st[0].begin(), st[0].end());
  if ((n - st[0].size()) / m < k) {
    for (int i = 0; i < m; i++) {
      st[101].push_back(st[0][i]);
    }
    for (int i = st[0].size() - m; i < st[0].size(); i++) {
      st[102].push_back(st[0][i]);
    }
  }
  for (int i = 1; i <= 102; i++) {
    if (st[i].size() != 0) {
      double avg = average(st[i]);
      min_ans = min(min_ans, avg);
      max_ans = max(max_ans, avg);
    }
  }
  printf("%.8lf %.8lf", min_ans, max_ans);
  return 0;
}
