#include <bits/stdc++.h>
using namespace std;
template <class T>
inline bool chmax(T& a, T b) {
  if (a < b) {
    a = b;
    return 1;
  }
  return 0;
}
template <class T>
inline bool chmin(T& a, T b) {
  if (a > b) {
    a = b;
    return 1;
  }
  return 0;
}
const long long INF = 1000000000000000;
const long long inf = -1e18;
long long ma = 1000000000 + 7;
long long h, w, n, k, m;
string s, t;
char maze[60][60];
int dis[101][101];
int nm[8][8];
int dx[4] = {1, 0, -1, 0};
int dy[4] = {0, 1, 0, -1};
int gcd(int x, int y) {
  if (x % y == 0) return y;
  return gcd(y, x % y);
}
int main() {
  cin >> n;
  int cnt = 0;
  int res = 0;
  vector<int> a(n);
  vector<bool> col(8);
  for (long long i = 0; i < n; i++) {
    cin >> a[i];
  }
  for (long long i = 0; i < n; i++) {
    if (1 <= a[i] && a[i] <= 399)
      col[0] = true;
    else if (400 <= a[i] && a[i] <= 799)
      col[1] = true;
    else if (800 <= a[i] && a[i] <= 1199)
      col[2] = true;
    else if (1200 <= a[i] && a[i] <= 1599)
      col[3] = true;
    else if (1600 <= a[i] && a[i] <= 1999)
      col[4] = true;
    else if (2000 <= a[i] && a[i] <= 2399)
      col[5] = true;
    else if (2400 <= a[i] && a[i] <= 2799)
      col[6] = true;
    else if (2800 <= a[i] && a[i] <= 3199)
      col[7] = true;
    else
      cnt++;
  }
  for (long long i = 0; i < 8; i++) {
    if (col[i] == true) {
      res++;
    }
  }
  if (res == 0) {
    cout << cnt << " " << res + cnt << endl;
    return 0;
  }
  cout << res << " " << res + cnt << endl;
}
