#include <bits/stdc++.h>
using namespace std;
using ll = long long;
template <class T>
bool chmax(T &a, const T &b) {
  if (a < b) {
    a = b;
    return 1;
  }
  return 0;
}
template <class T>
bool chmin(T &a, const T &b) {
  if (b < a) {
    a = b;
    return 1;
  }
  return 0;
}
const long long INF = 1LL << 60;
int gcd(int a, int b) {
  if (a % b == 0) {
    return (b);
  } else {
    return (gcd(b, a % b));
  }
}
uintmax_t combination(unsigned int n, unsigned int r) {
  if (r * 2 > n) r = n - r;
  uintmax_t dividend = 1;
  uintmax_t divisor = 1;
  for (unsigned int i = 1; i <= r; ++i) {
    dividend *= (n - i + 1);
    divisor *= i;
  }
  return dividend / divisor;
}
int modPow(long long a, long long n, long long p) {
  if (n == 1) return a % p;
  if (n % 2 == 1) return (a * modPow(a, n - 1, p)) % p;
  long long t = modPow(a, n / 2, p);
  return (t * t) % p;
}
int main() {
  int n;
  cin >> n;
  vector<int> a(n);
  for (int i = 0, i_len = (n); i < i_len; ++i) cin >> a[i];
  for (int i = 0, i_len = (n); i < i_len; ++i) a[i] /= 400;
  sort(a.begin(), a.end());
  int color = 0;
  if (a[0] < 8) color = 1;
  int eight = 0;
  int p = n - 1;
  for (int i = 0, i_len = (p); i < i_len; ++i) {
    if (a[i] != a[i + 1] && a[i + 1] < 8) {
      color++;
    }
  }
  for (int i = 0, i_len = (n); i < i_len; ++i) {
    if (a[i] >= 8) {
      eight++;
    }
  }
  int ans;
  int ce = color + eight;
  ans = min(8, ce);
  if (a[0] >= 8) color = 1;
  cout << color << " " << ans << endl;
  return 0;
}
