#include <bits/stdc++.h>
using namespace std;
const vector<long long> dx = {0, -1, 0, 1, 1, 1, -1, -1};
const vector<long long> dy = {1, 0, -1, 0, 1, -1, 1, -1};
constexpr long long MOD = (1000000007);
const long long INF = (1LL << 60);
const double EPS = (1 >> 30);
template <class tuple<long long, long long, long long>>
inline bool chmin(tuple<long long, long long, long long> &a,
                  tuple<long long, long long, long long> b) {
  if (a > b) {
    a = b;
    return 1;
  }
  return 0;
} template <class tuple<long long, long long, long long>>
inline bool chmax(tuple<long long, long long, long long> &a,
                  tuple<long long, long long, long long> b) {
  if (a < b) {
    a = b;
    return 1;
  }
  return 0;
} template <class tuple<long long, long long, long long>>
inline tuple<long long, long long, long long> ceil(
    tuple<long long, long long, long long> a,
    tuple<long long, long long, long long> b) {
  return tuple<long long, long long, long long>((a + b - 1) / b);
} template <typename T1, typename T2>
istream &operator>>(istream &is, pair<T1, T2> &p) {
  is >> p.first >> p.second;
  return is;
}
long long nmax = 200000;
vector<vector<long long>> g(nmax);
signed main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout << fixed << setprecision(15);
  map<long long, long long> mp;
  long long n;
  cin >> n;
  vector<long long> a(n);
  for (long long i = 0; i < n; ++i) cin >> a[i];
  sort((a).begin(), (a).end());
  long long cnt = 0;
  for (long long i = 0; i < n; ++i) {
    if (a[i] >= 3200)
      cnt++;
    else
      mp[a[i] / 400]++;
  }
  long long ans = mp.size();
  cout << ans << endl;
  cout << ans + cnt << endl;
}
