#include <bits/stdc++.h>
using namespace std;
inline int toInt(string s) {
  int v;
  istringstream sin(s);
  sin >> v;
  return v;
}
template <class T>
inline string toString(T x) {
  ostringstream sout;
  sout << x;
  return sout.str();
}
template <class T>
inline T sqr(T x) {
  return x * x;
}
const double EPS = 1e-10;
const double PI = acos(-1.0);
bool compare_by_b(pair<long long, long long> a, pair<long long, long long> b) {
  if (a.second != b.second) {
    return a.second < b.second;
  } else {
    return a.first < b.first;
  }
}
void solve(long long N, std::vector<long long> a) {
  if (N == 1)
    cout << 1 << endl;
  else {
    for (int i = (0); i < (N); ++i) {
      if (a[i] >= 1 && a[i] <= 399)
        a[i] = 1;
      else if (a[i] >= 400 && a[i] <= 799)
        a[i] = 2;
      else if (a[i] >= 800 && a[i] <= 1199)
        a[i] = 3;
      else if (a[i] >= 1200 && a[i] <= 1599)
        a[i] = 4;
      else if (a[i] >= 1600 && a[i] <= 1999)
        a[i] = 5;
      else if (a[i] >= 2000 && a[i] <= 2399)
        a[i] = 6;
      else if (a[i] >= 2400 && a[i] <= 2799)
        a[i] = 7;
      else if (a[i] >= 1800 && a[i] <= 3199)
        a[i] = 8;
      else if (a[i] >= 3200)
        a[i] = 9;
    }
    map<int, int> m;
    int ans = 0;
    for (int i = (0); i < (10); ++i) m[i] = 0;
    for (int i = (0); i < (N); ++i) {
      m[a[i]]++;
    }
    for (int i = 1; i <= 8; i++)
      if (m[i] > 0) ans++;
    cout << ans << " " << ans + m[9] << endl;
  }
  return;
}
int main() {
  long long N;
  scanf("%lld", &N);
  std::vector<long long> a(N);
  for (int i = 0; i < N; i++) {
    scanf("%lld", &a[i]);
  }
  solve(N, std::move(a));
  return 0;
}
