using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace AtCoder
{
    class Program
    {
        private const int MODULO = 1000000007;
        private static string Read() { return Console.ReadLine(); }
        private static int ReadInt() { return int.Parse(Read()); }
        private static long ReadLong() { return long.Parse(Read()); }
        private static double ReadDouble() { return double.Parse(Read()); }
        private static int[] ReadInts() { return Array.ConvertAll(Read().Split(), int.Parse); }
        private static long[] ReadLongs() { return Array.ConvertAll(Read().Split(), long.Parse); }
        private static double[] ReadDoubles() { return Array.ConvertAll(Read().Split(), double.Parse); }

        static int Color(int a)
        {
            for (int i = 400; i <= 3200; i += 400)
            {
                if (a < i) { return i; }
            }
            return -1;
        }
        static IEnumerable<int> Solve(int[] A)
        {
            int reds = 0;
            var colors = new Dictionary<int, int>();
            foreach (int a in A)
            {
                int key = Color(a);
                if (key < 0)
                {
                    ++reds;
                }
                else
                {
                    if (!colors.ContainsKey(key)) { colors[key] = 0; }
                    ++colors[key];
                }
            }
            return new[] { colors.Count, colors.Count + reds };
        }
        static void Main(string[] args)
        {
            int N = ReadInt();
            int[] A = ReadInts();
            Console.WriteLine(string.Join(" ", Solve(A)));
        }
    }
}
