def main():

    from collections import Counter



    N = int(eval(input()))

    a = list(map(int, input().split()))



    a = [min(8, x // 400) for x in a]



    ctr = Counter(a)



    len_ = len(list(ctr.keys()))

    free = ctr[8]

    if free:

        ma = len_ - 1 + free

        mi = max(1, len_ - 1)

        ans = mi, ma

    else:

        ans = len_, len_

    print((*ans))





if __name__ == '__main__':

    main()



# import sys

# input = sys.stdin.readline

# 

# sys.setrecursionlimit(10 ** 7)

# 

# (int(x)-1 for x in input().split())

# rstrip()

#

# def binary_search(*, ok, ng, func):

#     while abs(ok - ng) > 1:

#         mid = (ok + ng) // 2

#         if func(mid):

#             ok = mid

#         else:

#             ng = mid

#     return ok

def main():

    DIFF = 400



    N = int(eval(input()))



    ctr = [0] * 9

    for x in map(int, input().split()):

        ctr[min(x // DIFF, 8)] += 1



    le_red = sum(c > 0 for c in ctr[:8])

    gt_red = ctr[8]



    if gt_red:

        if le_red:

            print((le_red, le_red + gt_red))

        else:

            print((1, gt_red))

    else:

        print((le_red, le_red))





if __name__ == '__main__':

    main()

def main():
    from collections import Counter

    N = int(eval(input()))
    a = list(map(int, input().split()))
    a = [min(8, x // 400) for x in a]
    ctr = Counter(a)
    len_ = len(list(ctr.keys()))
    free = ctr[8]
    if free:
        ma = len_ - 1 + free
        mi = max(1, len_ - 1)
        ans = mi, ma
    else:
        ans = len_, len_
    print((*ans))


if __name__ == "__main__":
    main()
# import sys
# input = sys.stdin.readline
#
# sys.setrecursionlimit(10 ** 7)
#
# (int(x)-1 for x in input().split())
# rstrip()
#
# def binary_search(*, ok, ng, func):
#     while abs(ok - ng) > 1:
#         mid = (ok + ng) // 2
#         if func(mid):
#             ok = mid
#         else:
#             ng = mid
#     return ok

def main():
    DIFF = 400
    N = int(eval(input()))
    ctr = [0] * 9
    for x in map(int, input().split()):
        ctr[min(x // DIFF, 8)] += 1
    le_red = sum(c > 0 for c in ctr[:8])
    gt_red = ctr[8]
    if gt_red:
        if le_red:
            print((le_red, le_red + gt_red))
        else:
            print((1, gt_red))
    else:
        print((le_red, le_red))


if __name__ == "__main__":
    main()

-    from collections import Counter - +    DIFF = 400 -    a = list(map(int, input().split())) -    a = [min(8, x // 400) for x in a] -    ctr = Counter(a) -    len_ = len(list(ctr.keys())) -    free = ctr[8] -    if free: -        ma = len_ - 1 + free -        mi = max(1, len_ - 1) -        ans = mi, ma +    ctr = [0] * 9 +    for x in map(int, input().split()): +        ctr[min(x // DIFF, 8)] += 1 +    le_red = sum(c > 0 for c in ctr[:8]) +    gt_red = ctr[8] +    if gt_red: +        if le_red: +            print((le_red, le_red + gt_red)) +        else: +            print((1, gt_red)) -        ans = len_, len_ -    print((*ans)) +        print((le_red, le_red)) -# import sys -# input = sys.stdin.readline -# -# sys.setrecursionlimit(10 ** 7) -# -# (int(x)-1 for x in input().split()) -# rstrip() -# -# def binary_search(*, ok, ng, func): -#     while abs(ok - ng) > 1: -#         mid = (ok + ng) // 2 -#         if func(mid): -#             ok = mid -#         else: -#             ng = mid -#     return ok