#include <bits/stdc++.h>
template <typename T>
void scan1(T& x) {
  if (false) fprintf(stderr, "unknown type\n");
}
template <>
void scan1(long& x) {
  if (scanf("%ld", &x) < 0) exit(0);
}
template <>
void scan1(std::string& x) {
  if (not(std::cin >> x)) exit(0);
}
void scan() {}
template <typename Head, typename... Tail>
void scan(Head& x, Tail&... xs) {
  scan1(x);
  scan(xs...);
}
struct Solver {
  Solver() {
    if (false) fprintf(stderr, "--------Solver begin--------\n");
  }
  ~Solver() {
    if (false) fprintf(stderr, "--------Solver end--------\n");
  }
  void solve() {
    long n;
    scan(n);
    std::vector<long> xs(n);
    for (auto& x : xs) scan(x);
    long ys[10] = {};
    long s = 0;
    for (auto x : xs) {
      if (x >= 3200) {
        s += 1;
        continue;
      }
      ys[x / 400] += 1;
    }
    long res = 0;
    for (long i = 0; i < 10; ++i) {
      if (ys[i] != 0) res += 1;
    }
    printf("%ld %ld\n", res, res + s);
  }
};
int main() {
  for (;;) std::unique_ptr<Solver>(new Solver())->solve();
}
