#include "bits/stdc++.h" // {{{
using namespace std;
#define eb          emplace_back
#define emp         emplace
#define fi          first
#define se          second
#define X           first
#define Y           second
#define outl(x)     cout << (x) << '\n'
#define rep(i,n)    for(int i=0; i < (int)(n); ++i)
#define ALL(x)      begin(x), end(x)
#define TMPLT(T,U) template<class T, class U>
#ifdef DEBUG
#define debug(...)  fprintf(stderr, __VA_ARGS__)
#define show(x)     clog << #x << " \t= " << (x) << '\n'
#define line()      fputs("\n--------------------------------\n", stderr)
#else
#define debug(...)
#define show(x)
#define LN()
#endif
using ll  = long long;
using pii = pair<int,int>;
TMPLT(T,U) inline bool chmax(T &a, U b){return b>a ? a=b,1 : 0;}
TMPLT(T,U) inline bool chmin(T &a, U b){return b<a ? a=b,1 : 0;}
TMPLT(T,U) inline constexpr common_type_t<T,U> gcd(T x, U y) { return (x<y)? gcd(y,x) : (y <= 0)? x : gcd(y, x % y); }
TMPLT(T,U) inline constexpr ll lcm(T x, U y) { return (ll)x/gcd(x,y) * y; }
inline bool inner(int val, int min, int max){ return min <= val && val < max; }
constexpr int INF   = 0x3f3f3f3f;
constexpr ll LINF   = 0x3f3f3f3f'3f3f3f3fLL;

namespace ydk{ // }}}

constexpr int LIM = (int)100 + 10;

int $(int n)
{
    if (n < 400)    return 0;
    if (n < 800)    return 1;
    if (n < 1200)   return 2;
    if (n < 1600)   return 3;
    if (n < 2000)   return 4;
    if (n < 2400)   return 5;
    if (n < 2800)   return 6;
    if (n < 3200)   return 7;
    return -1;
}

#define P 8

signed _vim_is_god_()
{
    int N;
    int a[LIM];
    int cnt[10]{};

    int pro = 0;

    cin >> N;
    rep(i, N) {
        int a; cin >> a;
        a = $(a);
        if (a < 0) ++pro;
        ++cnt[a];
    }

    int base = 0;

    rep(i, P) {
        if (cnt[i] > 0) ++base;
    }

    int x = max(base, 1);
    int y = min(base+pro, 8);

    cout << x << ' ' << y << '\n';

    return 0;
}

} // {{{

signed main(){ydk::_vim_is_god_(); return 0;} // }}}

