#include <bits/stdc++.h>
int _ = (std::cin.tie(nullptr), std::ios::sync_with_stdio(false),
         std::cout.precision(10), std::cout.setf(std::ios::fixed));
using ll = long long;
using ull = unsigned long long;
using ld = long double;
template <typename T>
using vec = std::vector<T>;
using namespace std;
enum color {
  gray,
  brown,
  green,
  cyan,
  blue,
  yellow,
  orange,
  red,
  rainbow,
};
static constexpr color f(ll x) {
  if (x < 400) {
    return gray;
  } else if (x < 800) {
    return brown;
  } else if (x < 1200) {
    return green;
  } else if (x < 1600) {
    return cyan;
  } else if (x < 2000) {
    return blue;
  } else if (x < 2400) {
    return yellow;
  } else if (x < 2800) {
    return orange;
  } else if (x < 3200) {
    return red;
  } else {
    return rainbow;
  }
}
int main() {
  int N, a;
  cin >> N;
  vec<int> cs(9, 0);
  for (int i = (0); i < int(N); ++i) {
    cin >> a;
    cs[f(a)]++;
  }
  int c = 0;
  for (int i = gray; i < rainbow; i++) {
    if (cs[i] > 0) c++;
  }
  const int resmin = max(1, c);
  const int resmax = min(8, c + cs[rainbow]);
  cout << resmin << " " << resmax << endl;
  return 0;
}
