#include <bits/stdc++.h>
using namespace std;
using Graph = vector<vector<int>>;
using edge = struct {
  int to;
  long long cost;
};
template <class t, class u>
void chmax(t& a, u b) {
  if (a < b) a = b;
}
template <class t, class u>
void chmin(t& a, u b) {
  if (b < a) a = b;
}
bool compare_by_b(pair<int, int> a, pair<int, int> b) {
  if (a.second != b.second) {
    return a.second < b.second;
  } else {
    return a.first < b.first;
  }
};
bool compare_by_b_high(pair<int, int> a, pair<int, int> b) {
  if (a.second != b.second) {
    return a.second > b.second;
  } else {
    return a.first < b.first;
  }
};
bool compare_by_b_higheer(tuple<string, int, int> a,
                          tuple<string, int, int> b) {
  if (get<0>(a) != get<0>(b)) {
    return get<0>(a) < get<0>(b);
  } else {
    if (get<1>(a) != get<1>(b)) {
      return get<1>(a) > get<1>(b);
    } else {
      return get<2>(a) > get<2>(b);
    }
  }
};
int main() {
  int N;
  cin >> N;
  int a;
  vector<int> color(9, 0);
  for (int i = 0; i < N; ++i) {
    cin >> a;
    for (int i = 1; i <= 8; i++) {
      if (a < 400 * i && a >= 400 * (i - 1)) {
        color[i - 1]++;
      }
    }
    if (a >= 3200) {
      color[8]++;
    }
  }
  int count = 0;
  for (int i = 0; i < 8; ++i) {
    if (color[i] != 0) {
      count++;
    }
  }
  int ans = 0;
  if (count + color[8] > 8) {
    cout << count << " " << 8 << endl;
  } else {
    cout << count << " " << count + color[8] << endl;
  }
}
