package main

import (
	"bufio"
	"fmt"
	"os"
	"strconv"
	"strings"
)

const (
	initialBufSize = 10000
	maxBufSize     = 1000000
)

func rateAdd(m map[int]bool, rate int) {
	if _, ok := m[rate]; !ok {
		m[rate] = true
	}
}

func main() {
	var wtr = bufio.NewWriter(os.Stdout)
	var sc = bufio.NewScanner(os.Stdin)
	buf := make([]byte, initialBufSize)
	sc.Buffer(buf, maxBufSize)

	sc.Scan()
	strconv.Atoi(sc.Text())

	sc.Scan()
	temp := strings.Split(sc.Text(), " ")
	m := map[int]bool{}
	other := 0
	for _, v := range temp {
		rate, _ := strconv.Atoi(v)
		if 1 < rate && rate < 399 {
			rateAdd(m, 399)
		} else if 400 <= rate && rate <= 799 {
			rateAdd(m, 799)
		} else if 800 <= rate && rate <= 1199 {
			rateAdd(m, 1199)
		} else if 1200 <= rate && rate <= 1599 {
			rateAdd(m, 1599)
		} else if 1600 <= rate && rate <= 1999 {
			rateAdd(m, 1999)
		} else if 2000 <= rate && rate <= 2399 {
			rateAdd(m, 2399)
		} else if 2400 <= rate && rate <= 2799 {
			rateAdd(m, 2799)
		} else if 2800 <= rate && rate <= 3199 {
			rateAdd(m, 3199)
		} else if rate >= 3200 {
			other++
		}
	}
	fmt.Fprintln(wtr, len(m), len(m)+other)
	_ = wtr.Flush()
}
