#include <bits/stdc++.h>
#pragma GCC optimize("O3")
#pragma GCC target("sse4")
using namespace std;
const int MXN = 2e5, IINF = 1e9 + 10, INF = 1e18 + IINF + 10, MOD = 1000000007;
const long double PI = 4.0 * atanl(1.0), PREC = .000001;
const char nl = '\n';
int n, m, t, a[MXN];
void fast() { ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0); }
long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }
long long lcm(long long a, long long b) { return a * (b / gcd(a, b)); }
int main() {
  fast();
  cin >> n;
  for (int i = 0; i < (n); i++) cin >> a[i];
  int b[16] = {1,    399,  400,  799,  800,  1199, 1200, 1599,
               1600, 1999, 2000, 2399, 2400, 2799, 2800, 3199},
      first[MXN];
  int diff = 0, mx = 0;
  for (int i = 0; i < (n); i++) {
    if (a[i] > b[15]) {
      ++mx;
      continue;
    }
    for (int j = 0; j < 15; j += 2) {
      if (a[i] >= b[j] and a[i] <= b[j + 1] and !first[b[j]] and
          !first[b[j + 1]]) {
        ++diff, first[b[j + 1]] = 1, first[b[j]] = 1;
        break;
      }
    }
  }
  if (!diff) {
    mx = mx > 8 ? 8 : mx;
    cout << 1 << " " << mx;
    return 0;
  }
  if (!mx) {
    cout << diff << " " << diff;
    return 0;
  }
  int ans = 0;
  for (int i = 0; i < 15; i += 2)
    if (!first[b[i]] and !first[b[i + 1]]) ++ans;
  ans = mx > ans ? ans : mx;
  cout << diff << " " << diff + ans;
  return 0;
}
