#include <bits/stdc++.h>
using namespace std;
constexpr long long MOD = (1e9 + 7);
constexpr int gcd(int a, int b) { return b ? gcd(b, a % b) : a; }
constexpr int lcm(int a, int b) { return a / gcd(a, b) * b; }
template <class T>
inline bool chmin(T& a, T b) {
  if (a > b) {
    a = b;
    return true;
  }
  return false;
}
template <class T>
inline bool chmax(T& a, T b) {
  if (a < b) {
    a = b;
    return true;
  }
  return false;
}
long long factorial(long long n, long long m = 2) {
  m = max(2LL, m);
  long long rtn = 1;
  for (long long i = m; i <= n; i++) {
    rtn = (rtn * i) % MOD;
  }
  return rtn;
}
long long modinv(long long a, long long m) {
  long long b = m, u = 1, v = 0;
  while (b) {
    long long t = a / b;
    a -= t * b;
    swap(a, b);
    u -= t * v;
    swap(u, v);
  }
  u %= m;
  if (u < 0) u += m;
  return u;
}
long long modpow(long long a, long long n) {
  long long res = 1;
  while (n > 0) {
    if (n & 1) res = res * a % MOD;
    a = a * a % MOD;
    n >>= 1;
  }
  return res;
}
int main() {
  cin.tie(nullptr);
  ios::sync_with_stdio(false);
  int n;
  cin >> n;
  set<int> s;
  int wild = 0;
  for (int i = 0; i < n; ++i) {
    int a;
    cin >> a;
    if (a < 400)
      s.insert(0);
    else if (a < 800)
      s.insert(1);
    else if (a < 1200)
      s.insert(2);
    else if (a < 1600)
      s.insert(3);
    else if (a < 2000)
      s.insert(4);
    else if (a < 2400)
      s.insert(5);
    else if (a < 2800)
      s.insert(6);
    else if (a < 3200)
      s.insert(7);
    else {
      s.insert(-1);
      wild++;
    }
  }
  if (wild != 0) {
    int tmp = s.size() - 1;
    cout << tmp << " ";
    chmax(tmp, min(8, tmp + wild));
    cout << tmp << endl;
  } else {
    cout << (int)s.size() << " " << (int)s.size() << endl;
  }
  return 0;
}
