#define _GLIBCXX_DEBUG
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ld long double
#define rep(i,n) for(int i = 0; i < (int)(n); i++)
#define repo(i,n) for(int i = 1; i < (int)(n); i++)
#define pb push_back
#define np next_permutation
#define fi first
#define se second
#define all(x) (x).begin(),(x).end()
#define mod 1000000007
#define pi acos(-1.0)
ll gcd(ll x, ll y) { return y ? gcd(y, x % y) : x; }
ll lcm(ll x, ll y) { return x / gcd(x, y) * y; }
//cout << fixed << setprecision (20);   小数点以下2０桁まで
//intの最大値2147483647 ≒ 2×10^9
//long longの最大値9223372036854775807 ≒ 9×10^18
//'0'+=16;        で大文字に
//'大文字'+=32;    で小文字に
//s[i]-'0'でchar文字→int数に;
//string s = to_string(int数);
//int n = stoi(string文字列)
//実行時間制約2秒では２×10^8回くらいまで計算できる


int main() {
  int n;
  cin >> n;
  
  int pro=0;
  vector<int> q(8,0);
  vector<int> p(n);
  rep(i,n){
  cin>>p[i];
    if(p[i]<=399)q[0]++;
    else if(p[i]<=799)q[1]++;
    else if(p[i]<=1199)q[2]++;
    else if(p[i]<=1599)q[3]++;
    else if(p[i]<=1999)q[4]++;
    else if(p[i]<=2399)q[5]++;
    else if(p[i]<=2799)q[6]++;
    else if(p[i]<=3199)q[7]++;
    else pro++;    
  }
  
  int ans=0;
  rep(i,8){
    if(q[i]!=0)ans++;
  }
  
  if(ans==0){
  ans++;
  pro==;
  }
  
  cout << ans << " " << ans+pro << endl;
}
