#include <bits/stdc++.h>
const int INF = 1e9;
const int MOD = 1e9 + 7;
using LL = long long;
const LL LINF = 1e18;
using namespace std;
class Edge {
 public:
  int from, to, value;
  Edge(int a, int b, int c) {
    from = a;
    to = b;
    value = c;
  }
  Edge(int a, int b) {
    from = a;
    to = b;
  }
};
int main() {
  int(N);
  cin >> (N);
  vector<int> vec;
  for (int a = 0; a < (N); ++a) {
    int(b);
    cin >> (b);
    vec.push_back(b);
  }
  map<int, int> mp;
  for (int a = 0; a < (N); ++a) {
    if (mp.find(vec.at(a) / 400) == mp.end()) {
      mp[vec.at(a) / 400] = 1;
    } else {
      mp[vec.at(a) / 400]++;
    }
  }
  int ansa, ansb;
  if (mp.find(8) != mp.end()) {
    ansa = mp.size() - 1 + min(mp[8], 8);
    ansb = mp.size() - 1;
  } else {
    ansa = mp.size();
    ansb = mp.size();
  }
  if (ansb == 0) ansb = 1;
  cout << ansb << " " << ansa << endl;
  return 0;
}
