import math,string,itertools,fractions,heapq,collections,re,array,bisect,sys,random,time



sys.setrecursionlimit(10**7)

inf=10**20

mod=10**9+7



def LI(): return list(map(int,input().split()))

def I(): return int(eval(input()))

def LS(): return input().split()

def S(): return eval(input())



def main():

  n=I()

  l=LI()



  l2=[]

  c=0

  for x in l:

    if x>=3200:

      c+=1

      l2.append(8)

    else:

      l2.append(x//400)



  l2=list(set(l2))



  if len(l2)!=1 and l2.count(8):

    l2.remove(8)



  if len(l2)==1 and l2[0]==8:

    c=max(0,c-1)



  print((len(l2),len(l2)+c))



main()

import math,string,itertools,fractions,heapq,collections,re,array,bisect,sys,random,time



sys.setrecursionlimit(10**7)

inf=10**20

mod=10**9+7



def LI(): return list(map(int,input().split()))

def I(): return int(eval(input()))

def LS(): return input().split()

def S(): return eval(input())



def main():

  n=I()

  l=LI()



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

  b=[0]*9

  c=0

  for x in l:

    for i in range(len(a)-1):

      if a[i]<=x and x<a[i+1]:

        b[i]+=1



    if 3200<=x:

      c+=1



  d=0

  for x in b:

    if x>0:

      d+=1



  if d==0:

    print((1,c))

  else:

    print((d,d+c))



main()

import math, string, itertools, fractions, heapq, collections, re, array, bisect, sys, random, time

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


def LI():
    return list(map(int, input().split()))


def I():
    return int(eval(input()))


def LS():
    return input().split()


def S():
    return eval(input())


def main():
    n = I()
    l = LI()
    l2 = []
    c = 0
    for x in l:
        if x >= 3200:
            c += 1
            l2.append(8)
        else:
            l2.append(x // 400)
    l2 = list(set(l2))
    if len(l2) != 1 and l2.count(8):
        l2.remove(8)
    if len(l2) == 1 and l2[0] == 8:
        c = max(0, c - 1)
    print((len(l2), len(l2) + c))


main()

import math, string, itertools, fractions, heapq, collections, re, array, bisect, sys, random, time

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


def LI():
    return list(map(int, input().split()))


def I():
    return int(eval(input()))


def LS():
    return input().split()


def S():
    return eval(input())


def main():
    n = I()
    l = LI()
    a = [1, 400, 800, 1200, 1600, 2000, 2400, 2800, 3200]
    b = [0] * 9
    c = 0
    for x in l:
        for i in range(len(a) - 1):
            if a[i] <= x and x < a[i + 1]:
                b[i] += 1
        if 3200 <= x:
            c += 1
    d = 0
    for x in b:
        if x > 0:
            d += 1
    if d == 0:
        print((1, c))
    else:
        print((d, d + c))


main()

-    l2 = [] +    a = [1, 400, 800, 1200, 1600, 2000, 2400, 2800, 3200] +    b = [0] * 9 -        if x >= 3200: +        for i in range(len(a) - 1): +            if a[i] <= x and x < a[i + 1]: +                b[i] += 1 +        if 3200 <= x: -            l2.append(8) -        else: -            l2.append(x // 400) -    l2 = list(set(l2)) -    if len(l2) != 1 and l2.count(8): -        l2.remove(8) -    if len(l2) == 1 and l2[0] == 8: -        c = max(0, c - 1) -    print((len(l2), len(l2) + c)) +    d = 0 +    for x in b: +        if x > 0: +            d += 1 +    if d == 0: +        print((1, c)) +    else: +        print((d, d + c))