#include <bits/stdc++.h>
#define rep(i,n) for (ll i = 0; i < (n); ++i)
#define All(v) (v).begin(),(v).end()
#define rall(v) (v).rbegin(),(v).rend()   //reverse
#define strall(v) (v).cbegin(),(v).cend() //const_itterator
#define IN(a, b, x) (a<=x&&x<b)
using namespace std;
using ll = long long;
using Pair = pair<int,int>;
using Graph = vector<vector<ll>>;
template<typename T> using min_priority_queue = priority_queue<T, vector<T>, greater<T>>;
template<typename t, typename u, typename Comp=less<>>
bool chmax(t& xmax, const u& x, Comp comp={}) { if(comp(xmax, x)) { xmax = x; return true; } return false;}
template<typename t, typename u, typename Comp=less<>>
bool chmin(t& xmin, const u& x, Comp comp={}) { if(comp(x, xmin)) { xmin = x; return true;} return false;}
const int INF = 1e9;
const ll infl = ll(1e18)+5;

/*
*ios::sync_with_stdio(false);
*cin.tie(0);
*/

int main(){
  int n;cin >> n;
  vector<int> rate(9,0);
  rep(i,n){
    int a;
    cin >> a;
    if(a < 400) rate[0]++;
    else if(a < 800) rate[1]++;
    else if(a < 1200) rate[2]++;
    else if(a < 1600) rate[3]++;
    else if(a < 2000) rate[4]++;
    else if(a < 2400) rate[5]++;
    else if(a < 2800) rate[6]++;
    else if(a < 3200) rate[7]++;
    else rate[8]++ ;
  }
  //色の数カウント
  ll cnt = 0;
  rep(i,8){
    if(rate[i] != 0) cnt++; 
  }
  int min_ans = (int)cnt;
  if(cnt == 0) min_ans = 1;
  int max_ans = min((int)cnt+rate[8],8);
  cout << min_ans << " " << max_ans << endl;
}