import numpy as np



n = int(input())

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



border = list(range(400, 3201, 400))

cnt = [0] * (len(border) + 1)

for aa in a:

    for i, k in enumerate(border):

        if aa < k:

            cnt[i] += 1

            break

    else:

        cnt[i+1] += 1



k = np.count_nonzero(cnt[:-1])

print(k, k + cnt[-1]) if k != 0 else print(1, cnt[-1])

from bisect import bisect_left

import numpy as np



n = int(input())

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



border = np.arange(399, 3200, 400)

cnt = np.zeros(len(border) + 1, dtype=np.int)

for i in a:

    cnt[bisect_left(border, i)] += 1



k = np.count_nonzero(cnt[:-1])

print(k, k + cnt[-1]) if k != 0 else print(1, cnt[-1])

import numpy as np

n = int(input())
a = map(int, input().split())
border = list(range(400, 3201, 400))
cnt = [0] * (len(border) + 1)
for aa in a:
    for i, k in enumerate(border):
        if aa < k:
            cnt[i] += 1
            break
    else:
        cnt[i + 1] += 1
k = np.count_nonzero(cnt[:-1])
print(k, k + cnt[-1]) if k != 0 else print(1, cnt[-1])

from bisect import bisect_left
import numpy as np

n = int(input())
a = map(int, input().split())
border = np.arange(399, 3200, 400)
cnt = np.zeros(len(border) + 1, dtype=np.int)
for i in a:
    cnt[bisect_left(border, i)] += 1
k = np.count_nonzero(cnt[:-1])
print(k, k + cnt[-1]) if k != 0 else print(1, cnt[-1])

+from bisect import bisect_left -border = list(range(400, 3201, 400)) -cnt = [0] * (len(border) + 1) -for aa in a: -    for i, k in enumerate(border): -        if aa < k: -            cnt[i] += 1 -            break -    else: -        cnt[i + 1] += 1 +border = np.arange(399, 3200, 400) +cnt = np.zeros(len(border) + 1, dtype=np.int) +for i in a: +    cnt[bisect_left(border, i)] += 1