#include <bits/stdc++.h>
using namespace std;
const int MAX_N = 200010;
const double eps = 1e-6;
const long long mod = 1000000007;
const int inf = 1 << 30;
void Debug() { cout << '\n'; }
template <class FIRST, class... REST>
void Debug(FIRST arg, REST... rest) {
  cout << arg << " ";
  Debug(rest...);
}
template <class T>
ostream& operator<<(ostream& out, const vector<T>& v) {
  out << "[";
  if (!v.empty()) {
    for (int i = 0; i < (int)v.size() - 1; i++) out << v[i] << ", ";
    out << v.back();
  }
  out << "]";
  return out;
}
template <class S, class T>
ostream& operator<<(ostream& out, const pair<S, T>& v) {
  out << "(" << v.first << ", " << v.second << ")";
  return out;
}
int A[8] = {0, 400, 800, 1200, 1600, 2000, 2400, 2800};
int B[8] = {400, 800, 1200, 1600, 2000, 2400, 2800, 3200};
bool C[8];
int N;
void solve() {
  cin >> N;
  int target = 0;
  for (int i = 0; i < N; i++) {
    int a;
    cin >> a;
    bool found = false;
    for (int i = 0; i < 8; i++) {
      if (A[i] <= a && a < B[i]) {
        C[i] = true;
        found = true;
        break;
      }
    }
    if (!found) target++;
  }
  int cnt = 0;
  for (int i = 0; i < 8; i++)
    if (C[i]) cnt++;
  cout << cnt << " " << min(8, target + cnt) << '\n';
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout << fixed;
  cout.precision(20);
  solve();
  return 0;
}
