#include <bits/stdc++.h>
using namespace std;
template <class U, class V>
istream& operator>>(istream& in, pair<U, V>& pr) {
  return in >> pr.first >> pr.second;
}
template <class U, class V>
ostream& operator<<(ostream& out, pair<U, V>& p) {
  return out << p.first << " " << p.second;
}
template <class T>
ostream& operator<<(ostream& out, vector<T> vec) {
  for (T& e : vec) out << e << " ";
  return out << '\n';
}
void io_init() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
};
int getColor(int rating) {
  vector<int> v{399, 799, 1199, 1599, 1999, 2399, 2799, 3199};
  for (auto i = (0); i != (((int)v.size())); i++)
    if (rating <= v[i]) return i;
  return ((int)v.size());
};
void solveSingleCase(int caseNo) {
  int N;
  cin >> N;
  vector<int> A(N);
  for (auto it = (A.begin()); it != (A.end()); it++) cin >> *it;
  vector<int> Counts(9);
  for (int a : A) Counts[getColor(a)]++;
  int minColors = 0;
  for (auto i = (0); i != (8); i++) minColors += Counts[i] > 0;
  if (Counts[8] > 0) minColors = max(1, minColors);
  int maxColors = minColors + Counts[8];
  cout << minColors << " " << maxColors << '\n';
};
int main(int argc, char** argv) {
  io_init();
  int T = 1;
  for (auto tcase = (1); tcase != (T + 1); tcase++) {
    solveSingleCase(tcase);
  }
  return 0;
};
