#include <bits/stdc++.h>
using namespace std;
template <typename T>
int vector_finder(std::vector<T> vec, T number) {
  auto itr = std::find(vec.begin(), vec.end(), number);
  size_t index = std::distance(vec.begin(), itr);
  if (index != vec.size()) {
    return 1;
  } else {
    return 0;
  }
}
template <typename T>
T gcd(T a, T b) {
  if (b > 0) {
    return gcd(b, a % b);
  } else {
    return a;
  }
}
template <typename T>
T lcm(T a, T b) {
  T g = gcd(a, b);
  return a * b / g;
}
void clear(std::queue<pair<int, int> > &q) {
  std::queue<pair<int, int> > empty;
  std::swap(q, empty);
}
int N, M;
int ans = 0;
int main() {
  cin >> N;
  int a[N];
  int rate[8];
  int over = 0;
  for (int i = 0; i < 8; i++) {
    rate[i] = 0;
  }
  for (int i = 0; i < N; i++) {
    cin >> a[i];
    if (a[i] >= 3200) {
      over++;
    } else {
      int n = a[i] / 400;
      rate[n] = 1;
    }
  }
  int mi = 0;
  int ma;
  if (over == N) {
    mi = 1;
    ma = min(8, N);
  } else {
    mi = 0;
    for (int i = 0; i < 8; i++) {
      mi += rate[i];
    }
    ma = min(8, mi + over);
  }
  cout << mi << " " << ma << endl;
  return 0;
}
