#include <bits/stdc++.h>
const double EPS = 1e-10;
const double PI = acos(-1);
const long long INF = 1 << 30;
long long gdb_exec(long long a, long long b) {
  if (b == 0) return a;
  return gdb_exec(b, a % b);
}
long long gdb(long long a, long long b) {
  if (a < b) std::swap(a, b);
  if (a == 0 || b == 0) return -999999999;
  return gdb_exec(a, b);
}
long long lcm(long long a, long long b) {
  long long gdb_val = gdb(a, b);
  if (a % gdb_val == 0) {
    return (a / gdb_val) * b;
  }
  return (b / gdb_val) * a;
}
int main(int argc, char* argv[]) {
  int n;
  std::cin >> n;
  std::vector<int> va(n, 0);
  std::vector<int> vc_min(n, 0);
  std::vector<int> vc_max(n, 0);
  std::vector<int>::iterator it;
  int value = 3400;
  for (int i = 0; i < n; i++) {
    std::cin >> va[i];
    if (va[i] < 3200) {
      vc_min[i] = va[i] / 400;
      vc_max[i] = va[i] / 400;
    } else {
      vc_min[i] = 3000 / 400;
      vc_max[i] = value / 400;
      value += 400;
    }
  }
  vc_min.erase(std::unique(vc_min.begin(), vc_min.end()), vc_min.end());
  vc_max.erase(std::unique(vc_max.begin(), vc_max.end()), vc_max.end());
  std::cout << vc_min.size() << " " << vc_max.size() << std::endl;
  return 0;
}
