#pragma comment(linker, "/STACK:64000000")
#include <iostream>
#include <cmath>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <cassert>
#include <ctime>
#include <sstream>
#include <algorithm>
#include <functional>
#include <numeric>
#include <string>
#include <vector>
#include <queue>
#include <stack>
#include <map>
#include <set>

using namespace std;

#define f first
#define s second
#define pb push_back
#define mp make_pair
#define ll long long
#define pii pair < int, int >
#define pll pair < long long, long long>
#define ull unsigned long long
#define y1 stupid_cmath
#define left stupid_left
#define right stupid_right
#define vi vector <int>
#define sz(a) (int)a.size()
#define forit(it, s) for(__typeof(s.begin()) it = s.begin(); it != s.end(); it++)
#define all(a) a.begin(), a.end()
#define sqr(x) ((x) * (x))

const int inf = (int)1e9;
const int mod = inf + 7;
const double eps = 1e-9;
const double pi = acos(-1.0);

int get(int x) {
    if (x >= 3200) return 0;
    return x / 400 + 1;
}

int main(){

    /*
     * Rating 1-399 : gray
     * Rating 400-799 : brown
     * Rating 800-1199 : green
     * Rating 1200-1599 : cyan
     * Rating 1600-1999 : blue
     * Rating 2000-2399 : yellow
     * Rating 2400-2799 : orange
     * Rating 2800-3199 : red
     */

    int n;
    set<int> s;

    cin >> n;
    int x;
    int cnt = 0;

    while(n--) {
        cin >> x;
        if (get(x) == 0) cnt++;
        else s.insert(get(x))
    }

    cout << s.size() << " " << min(8, s.size() + cnt) << endl;

    return 0;
}
