#include <bits/stdc++.h>
using namespace std;
inline long long ispossible(vector<long long>& b, vector<long long>& p, int k,
                            long long a) {
  int n = b.size();
  if (k > p.size()) return -1;
  long long c = 0, s = 0, extra = 0;
  for (int i = n - k; i < n; i++) {
    c += p[i - n + k];
    extra += max(p[i - n + k] - b[i], 0ll);
  }
  if (extra > a) return -1;
  long long e = c - a;
  return e > 0 ? e : 0;
}
int main() {
  int n, m;
  long long a;
  cin >> n >> m >> a;
  vector<long long> b(n, 0), p(m, 0);
  for (int i = 0; i < n; i++) cin >> b[i];
  for (int i = 0; i < m; i++) cin >> p[i];
  sort(b.begin(), b.end());
  sort(p.begin(), p.end());
  int l, r;
  long long tcost, cost = 0;
  l = 0, r = n;
  while (l < r) {
    m = (l + r) >> 1;
    tcost = ispossible(b, p, m, a);
    if (tcost >= 0) {
      l = m + 1;
      cost = tcost;
    } else
      r = m;
  }
  if (l <= r) {
    tcost = ispossible(b, p, r, a);
    if (tcost >= 0) {
      l = r + 1;
      cost = tcost;
    }
  }
  cout << l - 1 << " " << cost << endl;
  return 0;
}
