#include <bits/stdc++.h>
using namespace std;
long long findLowerBound(vector<pair<long long, long long>> &arr,
                         pair<long long, long long> &p) {
  auto low = lower_bound(arr.begin(), arr.end(), p);
  return low - arr.begin();
}
long long findUpperBound(vector<pair<long long, long long>> &arr,
                         pair<long long, long long> &p) {
  auto up = upper_bound(arr.begin(), arr.end(), p);
  return up - arr.begin();
}
int32_t main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  long long r, g, b;
  cin >> r;
  long long arr[r];
  long long a[10] = {0};
  long long max1 = 0, min1 = 10001;
  for (long long i = 0; i < r; i++) {
    cin >> arr[i];
    if (arr[i] < 400) {
      a[0]++;
    }
    if (arr[i] > 399 && arr[i] < 800) {
      a[1]++;
    }
    if (arr[i] > 799 && arr[i] < 1200) {
      a[2]++;
    }
    if (arr[i] > 1199 && arr[i] < 1600) {
      a[3]++;
    }
    if (arr[i] > 1599 && arr[i] < 2000) {
      a[4]++;
    }
    if (arr[i] > 1999 && arr[i] < 2400) {
      a[5]++;
    }
    if (arr[i] > 2399 && arr[i] < 2800) {
      a[6]++;
    }
    if (arr[i] > 2799 && arr[i] < 3200) {
      a[7]++;
    }
    if (arr[i] > 3199) {
      a[8]++;
    }
  }
  long long count = 0;
  for (long long i = 0; i < 8; i++) {
    if (a[i] != 0) count++;
  }
  if (count)
    cout << count << " ";
  else {
    cout << 1 << " ";
  }
  if (count + a[8] >= 8)
    cout << 8 << " ";
  else {
    cout << count + a[8];
  }
  return 0;
}
