#include <bits/stdc++.h>
using namespace std;
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;
}
const long long INF = 100100100100;
const long long MOD = 1000000007;
long long mod_pow(long long N, long long M) {
  if (M == 0) return 1;
  long long res = mod_pow((N * N) % MOD, M / 2);
  if (M & 1) res = (res * N) % MOD;
  return res %= MOD;
}
long long nCr(long long n, long long r) {
  long long A = 1, B = 1;
  for (long long i = n - r + 1; i <= n; i++) {
    A = A * i % MOD;
  }
  for (long long i = 1; i <= r; i++) {
    B = B * i % MOD;
  }
  B = mod_pow(B, MOD - 2);
  B %= MOD;
  return (A * B) % MOD;
}
long long gcd(long long a, long long b) {
  if (b == 0)
    return a;
  else
    return gcd(b, a % b);
}
long long lcm(long long a, long long b) { return a * b / gcd(a, b); }
bool ok(long long key, long long index) {
  if (index > key)
    return true;
  else if (index <= key)
    return false;
}
long long binary_search(long long key, long long size) {
  long long left = -1, right = size;
  while (right - left > 1) {
    long long mid = left + (right - left) / 2;
    long long hantei = ok(key, mid);
    if (hantei)
      right = mid;
    else
      left = mid;
  }
  if (left == -1) return 0;
  return left;
}
vector<vector<char>> ban(8, vector<char>(8));
int main() {
  int N;
  cin >> N;
  vector<int> retu(N);
  set<int> S;
  int maxi = 0;
  for (int i = 0; i < N; i++) {
    cin >> retu.at(i);
    if (retu.at(i) >= 3200) {
      maxi++;
      continue;
    }
    S.insert(retu.at(i) / 400);
  }
  if (S.size() == 0) {
    cout << maxi << " " << maxi << endl;
    return 0;
  }
  cout << S.size() << " " << maxi + S.size() << endl;
}
