#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> vc_min;
  std::vector<int> vc_max;
  int additional_max_val = 0;
  for (int i = 0; i < n; i++) {
    int tmp;
    std::cin >> tmp;
    if (tmp < 3200) {
      vc_min.push_back(tmp / 400);
      vc_max.push_back(tmp / 400);
    } else {
      additional_max_val++;
    }
  }
  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());
  int min_val = vc_min.size() == 0 ? 1 : vc_min.size();
  int max_val = vc_max.size() + additional_max_val;
  std::cout << min_val << " " << max_val << std::endl;
  return 0;
}
