#include <bits/stdc++.h>
using namespace std;
const int IINF = INT_MAX;
const long long LLINF = LLONG_MAX;
inline bool LT(double a, double b) {
  return !(fabs((a) - (b)) < (1e-8)) && a < b;
}
inline bool LTE(double a, double b) {
  return (fabs((a) - (b)) < (1e-8)) || a < b;
}
void compute() {}
int main() {
  int n;
  cin >> n;
  int a;
  map<int, int> mp;
  int b = 0;
  set<int> S;
  for (int i = 0; i < n; ++i) {
    cin >> a;
    if (1 <= a && a <= 399) {
      ++mp[0];
      S.insert(0);
    } else if (400 <= a && a <= 799) {
      ++mp[1];
      S.insert(1);
    } else if (800 <= a && a <= 1199) {
      ++mp[2];
      S.insert(2);
    } else if (1200 <= a && a <= 1599) {
      ++mp[3];
      S.insert(3);
    } else if (1600 <= a && a <= 1999) {
      ++mp[4];
      S.insert(4);
    } else if (2000 <= a && a <= 2399) {
      ++mp[5];
      S.insert(5);
    } else if (2400 <= a && a <= 2799) {
      ++mp[6];
      S.insert(6);
    } else if (2800 <= a && a <= 3199) {
      ++mp[7];
      S.insert(7);
    } else {
      ++b;
    }
  }
  cout << max(1, (int)S.size()) << " " << min((int)S.size() + b, 8) << endl;
  compute();
  return 0;
}
