#include <bits/stdc++.h>
using namespace std;
using namespace std::chrono;
struct aaa {
  aaa() {
    cin.tie(0);
    cout.tie(0);
    ios::sync_with_stdio(0);
    cout << fixed << setprecision(15);
  };
} aaaaaaa;
template <typename T>
inline constexpr T gcd(T a, T b) {
  if (a == b)
    return a;
  else
    return gcd(b, (a - 1) % b + 1);
}
inline void in() {}
template <typename T>
istream& operator>>(istream& is, vector<T>& vec);
template <typename T, size_t size>
istream& operator>>(istream& is, array<T, size>& vec);
template <typename T, typename L>
istream& operator>>(istream& is, pair<T, L>& p);
template <typename T>
ostream& operator<<(ostream& os, vector<T>& vec);
template <typename T, typename L>
ostream& operator<<(ostream& os, pair<T, L>& p);
template <typename T>
istream& operator>>(istream& is, vector<T>& vec) {
  for (T& x : vec) is >> x;
  return is;
}
template <typename T, typename L>
istream& operator>>(istream& is, pair<T, L>& p) {
  is >> p.first;
  is >> p.second;
  return is;
}
template <typename T>
ostream& operator<<(ostream& os, vector<T>& vec) {
  os << vec[0];
  for (long long i = 1; i < vec.size(); ++i) {
    os << ' ' << vec[i];
  }
  return os;
}
template <typename T, typename L>
ostream& operator<<(ostream& os, pair<T, L>& p) {
  os << p.first << " " << p.second;
  return os;
}
template <class Head, class... Tail>
inline void in(Head&& head, Tail&&... tail) {
  cin >> head;
  in(move(tail)...);
}
template <typename T>
inline void out(T t) {
  cout << t << '\n';
}
inline void out() { cout << '\n'; }
template <class Head, class... Tail>
inline void out(Head head, Tail... tail) {
  cout << head << ' ';
  out(move(tail)...);
}
int main() {
  int n;
  in(n);
  vector<int> rate(10);
  ;
  for (long long i = 0; i < n; ++i) {
    int a;
    in(a);
    rate[a / 400]++;
  }
  if (rate[8] == n) return out(1, n), 0;
  int ans = 0;
  for (long long i = 0; i < 8; ++i)
    if (rate[i]) ans++;
  out(ans, ans + rate[8]);
}
