#ifdef LOCAL
#include <cstdio>
#include <vector>
#include <algorithm>
#include <iostream>
#include <cstring>
#else
#include <bits/stdc++.h>
#endif
using namespace std ;

typedef long long ll ;
#define rep(i , n ) for ( int i =0; i < n ; i++)
#define _sort(arg) sort(begin(arg), end(arg))
#define MOD 1000000007
#define pb push_back
#define DEBUG(x) cout << #x << ": " << x << endl;

/*
__attribute__((constructor))
void initial()
{
	cin.tie(NULL);
	ios::sync_with_stdio(false);
}
*/
int check(int x)
{
	if ((x >= 1) && (x <= 399))
	{
		return 0;
	}
	if ((x >= 400) && (x <= 799))
	{
		return 1;
	}
	if ((x >= 800) && (x <= 1199))
	{
		return 2;
	}
	if ((x >= 1200) && (x <= 1599))
	{
		return 3;
	}
	if ((x >= 1600) && (x <= 1999))
	{
		return 4;
	}
	if ((x >= 2000) && (x <= 2399))
	{
		return 5;
	}
	if ((x >= 2400) && (x <= 2799))
	{
		return 6;
	}
	if ((x >= 2800) && (x <= 3199))
	{
		return 7;
	}

	return 8;

}

int main()
{
	cin.tie(NULL);
	ios::sync_with_stdio(false);

	int N;
	
	cin >> N;

	int a[9];
	memset(a, 0, sizeof(a));

	rep(i, N)
	{
		int tmp;
		cin >> tmp;
		//int ret = check(tmp);
		a[check(tmp)]++;
	}

	int min = 0; int max = 0;

	rep(i, 9)
	{
		if ((a[i] > 0) && (i < 8))
		{
			min++;
			max++;
		}
		if (i == 8)
		{
			max += a[8];
		}
	}
	min = max(1, min);

	cout << min << " " << max << endl;
	
	return 0;
}
