
import bisect
import collections
import itertools


def getint(): return int(input())
def getints(): return list(map(int, input().split()))
def getint2d(rows): return [getints() for _ in range(rows)]
def getgrid(rows): return [input() for _ in range(rows)]
def array1d(n, value): return [value for _ in range(n)]
def array2d(n, m, value): return [array1d(m, value) for _ in range(n)]

types = [400,800,1200,1600,2000,2400,2800,3200]

n = getint()
xs = getints()

st = set()

any_color=0

for x in xs:
    t = -1
    for i in range(len(types)):
        if x < types[i]:
            t = i
            break
    if t >= 0:
        st.add(t)
    else:
        any_color += 1

res_min = max(len(st), 1)
res_max = min(len(st) + any_color, 8)
print(res_min, res_max)
