#include <bits/stdc++.h>
using namespace std;
const long long INF = 1e18;
const long long MOD = 1e9 + 7;
struct union_find {
  vector<long long> data;
  union_find(long long size) : data(size, -1) {}
  bool union_set(long long x, long long y) {
    x = root(x);
    y = root(y);
    if (x != y) {
      if (data[y] < data[x]) swap(x, y);
      data[x] += data[y];
      data[y] = x;
    }
    return x != y;
  }
  bool find_set(long long x, long long y) { return root(x) == root(y); }
  long long root(long long x) {
    return data[x] < 0 ? x : data[x] = root(data[x]);
  }
  long long size(long long x) { return -data[root(x)]; }
};
vector<long long> cum(vector<long long> V) {
  vector<long long> U((long long)(V).size());
  partial_sum(begin(V), end(V), begin(U));
  return U;
}
void solve() {
  long long n;
  long long ans = 0;
  cin >> n;
  set<long long> s;
  for (decltype(+n) i = 0; i < (n); i++) {
    long long a;
    cin >> a;
    a /= 400;
    if (a < 8)
      s.insert(a);
    else
      ans++;
  }
  cout << (long long)(s).size() << " " << (long long)(s).size() + ans << endl;
}
signed main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout << fixed << setprecision(15);
  solve();
}
