use std::io;
use std::cmp;
use std::collections::HashSet;

#[derive(Eq, Hash, PartialEq)]
enum Color {
    Gray,
    Brown,
    Green,
    Sky,
    Blue,
    Yellow,
    Orange,
    Red
}

fn main() {
    let mut n = String::new();
    io::stdin().read_line(&mut n).expect("Failed to read line");

    let mut vec = String::new(); 
    io::stdin().read_line(&mut vec).expect("Failed to read line");
    let vec: Vec<i32> = vec.trim().split(' ').map(|x| x.trim().parse().unwrap()).collect();

    let mut set = HashSet::new();
    let mut target_count = 0;
    
    for v in vec {
        if v < 400 {
            set.insert(Color::Gray);
        } else if v < 800 {
            set.insert(Color::Brown);
        } else if v < 1200 {
            set.insert(Color::Green);
        } else if v < 1600 {
            set.insert(Color::Sky);
        } else if v < 2000 {
            set.insert(Color::Blue);
        } else if v < 2400 {
            set.insert(Color::Yellow);
        } else if v < 2800 {
            set.insert(Color::Orange);
        } else if v < 3200 {
            set.insert(Color::Red);
        } else {
            target_count += 1;
        }
    }
    println!("{} {}", cmp::max(1, set.len()), cmp::min(8, set.len() + target_count))
}
