#include <bits/stdc++.h>
using ll = long long;
int MOD = 1e9 + 7;
using namespace std;
ll GCD(ll x, ll y) {
  if (y == 0) {
    return x;
  } else {
    return GCD(y, x % y);
  }
}
ll LCM(ll x, ll y) { return x / GCD(x, y) * y; }
struct UnionFind {
  vector<int> par;
  UnionFind(int N) : par(N) {
    for (int i = 0; i < N; i++) par[i] = i;
  }
  int root(int x) {
    if (par[x] == x) return x;
    return par[x] = root(par[x]);
  }
  void unite(int x, int y) {
    int rx = root(x);
    int ry = root(y);
    if (rx == ry) return;
    par[rx] = ry;
  }
  bool same(int x, int y) {
    int rx = root(x);
    int ry = root(y);
    return rx == ry;
  }
};
int main() {
  int n;
  cin >> n;
  set<int> se;
  int k = 0;
  for (int i = 0; i < n; i++) {
    int x;
    cin >> x;
    x /= 400;
    if (x >= 8) {
      k++;
      continue;
    }
    se.insert(x);
  }
  if (se.size() == 0) {
    cout << 1 << " ";
  } else {
    cout << se.size() << " ";
  }
  cout << min(8, k + (int)se.size()) << endl;
}
