from collections import Counter,defaultdict,deque

import sys,heapq,bisect,math,itertools,string,queue

sys.setrecursionlimit(10**8)

mod = 10**9+7

def inp(): return int(sys.stdin.readline())

def inpl(): return list(map(int, sys.stdin.readline().split()))

def inpl_str(): return list(sys.stdin.readline().split())

def inpln(n): return list(int(sys.stdin.readline()) for i in range(n))



n = inp()

a = inpl()

d = defaultdict(int)

for i in a:

    d[i//400] += 1

c = 0

f = 0

for key in list(d.keys()):

    if key < 8:

        c += 1

    else:

        f += d[key]

if c == 0:

    print((1,f))

else:

    print((c,c+f))



from collections import Counter,defaultdict,deque

from heapq import heappop,heappush,heapify

from bisect import bisect_left,bisect_right 

import sys,math,itertools,fractions,pprint

sys.setrecursionlimit(10**8)

mod = 10**9+7

INF = float('inf')

def inp(): return int(sys.stdin.readline())

def inpl(): return list(map(int, sys.stdin.readline().split()))



n = inp()

a = inpl()

bo = [False] * 8

free = 0

for x in a:

    now = x//400

    if now < 8:

        bo[now] = True

    else:

        free += 1

mi = sum(bo) if sum(bo) > 0 else 1

print((mi, sum(bo) + free))
from collections import Counter, defaultdict, deque
import sys, heapq, bisect, math, itertools, string, queue

sys.setrecursionlimit(10**8)
mod = 10**9 + 7


def inp():
    return int(sys.stdin.readline())


def inpl():
    return list(map(int, sys.stdin.readline().split()))


def inpl_str():
    return list(sys.stdin.readline().split())


def inpln(n):
    return list(int(sys.stdin.readline()) for i in range(n))


n = inp()
a = inpl()
d = defaultdict(int)
for i in a:
    d[i // 400] += 1
c = 0
f = 0
for key in list(d.keys()):
    if key < 8:
        c += 1
    else:
        f += d[key]
if c == 0:
    print((1, f))
else:
    print((c, c + f))

from collections import Counter, defaultdict, deque
from heapq import heappop, heappush, heapify
from bisect import bisect_left, bisect_right
import sys, math, itertools, fractions, pprint

sys.setrecursionlimit(10**8)
mod = 10**9 + 7
INF = float("inf")


def inp():
    return int(sys.stdin.readline())


def inpl():
    return list(map(int, sys.stdin.readline().split()))


n = inp()
a = inpl()
bo = [False] * 8
free = 0
for x in a:
    now = x // 400
    if now < 8:
        bo[now] = True
    else:
        free += 1
mi = sum(bo) if sum(bo) > 0 else 1
print((mi, sum(bo) + free))

-import sys, heapq, bisect, math, itertools, string, queue +from heapq import heappop, heappush, heapify +from bisect import bisect_left, bisect_right +import sys, math, itertools, fractions, pprint +INF = float("inf") -def inpl_str(): -    return list(sys.stdin.readline().split()) - - -def inpln(n): -    return list(int(sys.stdin.readline()) for i in range(n)) - - -d = defaultdict(int) -for i in a: -    d[i // 400] += 1 -c = 0 -f = 0 -for key in list(d.keys()): -    if key < 8: -        c += 1 +bo = [False] * 8 +free = 0 +for x in a: +    now = x // 400 +    if now < 8: +        bo[now] = True -        f += d[key] -if c == 0: -    print((1, f)) -else: -    print((c, c + f)) +        free += 1 +mi = sum(bo) if sum(bo) > 0 else 1 +print((mi, sum(bo) + free))