
import java.io.PrintWriter;
import java.util.*;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		PrintWriter out = new PrintWriter(System.out);
		int N = Integer.parseInt(sc.next());
		HashSet<String> set = new HashSet<>();
		int red = 0;
		for(int i= 0; i<N; i++){
			int a = Integer.parseInt(sc.next());
			if(a<400){
				set.add("gray");
			}
			else if(a<800){
				set.add("brown");
			}
			else if(a<1200){
				set.add("g");
			}
			else if(a<1600){
				set.add("a");
			}
			else if(a<2000){
				set.add("b");
			}
			else if(a<2400){
				set.add("y");
			}
			else if(a<2800){
				set.add("o");
			}
			else if(a<3200){
				set.add("red");
			}
			else{
				red++;
			}
		}
		int min = Math.max(set.size(),1);
		int max = min + red;
		if(set.size() == 0){
			max = red;
		}
		out.println(min + " " + max);
		
		sc.close();
		out.flush();
	}
} import java.io.PrintWriter; PrintWriter java.io import java.util.*; util.* java public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		PrintWriter out = new PrintWriter(System.out);
		int N = Integer.parseInt(sc.next());
		HashSet<String> set = new HashSet<>();
		int red = 0;
		for(int i= 0; i<N; i++){
			int a = Integer.parseInt(sc.next());
			if(a<400){
				set.add("gray");
			}
			else if(a<800){
				set.add("brown");
			}
			else if(a<1200){
				set.add("g");
			}
			else if(a<1600){
				set.add("a");
			}
			else if(a<2000){
				set.add("b");
			}
			else if(a<2400){
				set.add("y");
			}
			else if(a<2800){
				set.add("o");
			}
			else if(a<3200){
				set.add("red");
			}
			else{
				red++;
			}
		}
		int min = Math.max(set.size(),1);
		int max = min + red;
		if(set.size() == 0){
			max = red;
		}
		out.println(min + " " + max);
		
		sc.close();
		out.flush();
	}
} Main public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		PrintWriter out = new PrintWriter(System.out);
		int N = Integer.parseInt(sc.next());
		HashSet<String> set = new HashSet<>();
		int red = 0;
		for(int i= 0; i<N; i++){
			int a = Integer.parseInt(sc.next());
			if(a<400){
				set.add("gray");
			}
			else if(a<800){
				set.add("brown");
			}
			else if(a<1200){
				set.add("g");
			}
			else if(a<1600){
				set.add("a");
			}
			else if(a<2000){
				set.add("b");
			}
			else if(a<2400){
				set.add("y");
			}
			else if(a<2800){
				set.add("o");
			}
			else if(a<3200){
				set.add("red");
			}
			else{
				red++;
			}
		}
		int min = Math.max(set.size(),1);
		int max = min + red;
		if(set.size() == 0){
			max = red;
		}
		out.println(min + " " + max);
		
		sc.close();
		out.flush();
	} main {
		Scanner sc = new Scanner(System.in);
		PrintWriter out = new PrintWriter(System.out);
		int N = Integer.parseInt(sc.next());
		HashSet<String> set = new HashSet<>();
		int red = 0;
		for(int i= 0; i<N; i++){
			int a = Integer.parseInt(sc.next());
			if(a<400){
				set.add("gray");
			}
			else if(a<800){
				set.add("brown");
			}
			else if(a<1200){
				set.add("g");
			}
			else if(a<1600){
				set.add("a");
			}
			else if(a<2000){
				set.add("b");
			}
			else if(a<2400){
				set.add("y");
			}
			else if(a<2800){
				set.add("o");
			}
			else if(a<3200){
				set.add("red");
			}
			else{
				red++;
			}
		}
		int min = Math.max(set.size(),1);
		int max = min + red;
		if(set.size() == 0){
			max = red;
		}
		out.println(min + " " + max);
		
		sc.close();
		out.flush();
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) PrintWriter out = new PrintWriter(System.out); out new PrintWriter(System.out) int N = Integer.parseInt(sc.next()); N Integer.parseInt(sc.next()) Integer.parseInt Integer sc.next() sc.next sc HashSet<String> set = new HashSet<>(); set new HashSet<>() int red = 0; red 0 for(int i= 0; i<N; i++){
			int a = Integer.parseInt(sc.next());
			if(a<400){
				set.add("gray");
			}
			else if(a<800){
				set.add("brown");
			}
			else if(a<1200){
				set.add("g");
			}
			else if(a<1600){
				set.add("a");
			}
			else if(a<2000){
				set.add("b");
			}
			else if(a<2400){
				set.add("y");
			}
			else if(a<2800){
				set.add("o");
			}
			else if(a<3200){
				set.add("red");
			}
			else{
				red++;
			}
		} int i= 0; int i= 0; i 0 i<N i N i++ i++ i {
			int a = Integer.parseInt(sc.next());
			if(a<400){
				set.add("gray");
			}
			else if(a<800){
				set.add("brown");
			}
			else if(a<1200){
				set.add("g");
			}
			else if(a<1600){
				set.add("a");
			}
			else if(a<2000){
				set.add("b");
			}
			else if(a<2400){
				set.add("y");
			}
			else if(a<2800){
				set.add("o");
			}
			else if(a<3200){
				set.add("red");
			}
			else{
				red++;
			}
		} {
			int a = Integer.parseInt(sc.next());
			if(a<400){
				set.add("gray");
			}
			else if(a<800){
				set.add("brown");
			}
			else if(a<1200){
				set.add("g");
			}
			else if(a<1600){
				set.add("a");
			}
			else if(a<2000){
				set.add("b");
			}
			else if(a<2400){
				set.add("y");
			}
			else if(a<2800){
				set.add("o");
			}
			else if(a<3200){
				set.add("red");
			}
			else{
				red++;
			}
		} int a = Integer.parseInt(sc.next()); a Integer.parseInt(sc.next()) Integer.parseInt Integer sc.next() sc.next sc if(a<400){
				set.add("gray");
			}
			else if(a<800){
				set.add("brown");
			}
			else if(a<1200){
				set.add("g");
			}
			else if(a<1600){
				set.add("a");
			}
			else if(a<2000){
				set.add("b");
			}
			else if(a<2400){
				set.add("y");
			}
			else if(a<2800){
				set.add("o");
			}
			else if(a<3200){
				set.add("red");
			}
			else{
				red++;
			} a<400 a 400 {
				set.add("gray");
			} set.add("gray") set.add set "gray" if(a<800){
				set.add("brown");
			}
			else if(a<1200){
				set.add("g");
			}
			else if(a<1600){
				set.add("a");
			}
			else if(a<2000){
				set.add("b");
			}
			else if(a<2400){
				set.add("y");
			}
			else if(a<2800){
				set.add("o");
			}
			else if(a<3200){
				set.add("red");
			}
			else{
				red++;
			} a<800 a 800 {
				set.add("brown");
			} set.add("brown") set.add set "brown" if(a<1200){
				set.add("g");
			}
			else if(a<1600){
				set.add("a");
			}
			else if(a<2000){
				set.add("b");
			}
			else if(a<2400){
				set.add("y");
			}
			else if(a<2800){
				set.add("o");
			}
			else if(a<3200){
				set.add("red");
			}
			else{
				red++;
			} a<1200 a 1200 {
				set.add("g");
			} set.add("g") set.add set "g" if(a<1600){
				set.add("a");
			}
			else if(a<2000){
				set.add("b");
			}
			else if(a<2400){
				set.add("y");
			}
			else if(a<2800){
				set.add("o");
			}
			else if(a<3200){
				set.add("red");
			}
			else{
				red++;
			} a<1600 a 1600 {
				set.add("a");
			} set.add("a") set.add set "a" if(a<2000){
				set.add("b");
			}
			else if(a<2400){
				set.add("y");
			}
			else if(a<2800){
				set.add("o");
			}
			else if(a<3200){
				set.add("red");
			}
			else{
				red++;
			} a<2000 a 2000 {
				set.add("b");
			} set.add("b") set.add set "b" if(a<2400){
				set.add("y");
			}
			else if(a<2800){
				set.add("o");
			}
			else if(a<3200){
				set.add("red");
			}
			else{
				red++;
			} a<2400 a 2400 {
				set.add("y");
			} set.add("y") set.add set "y" if(a<2800){
				set.add("o");
			}
			else if(a<3200){
				set.add("red");
			}
			else{
				red++;
			} a<2800 a 2800 {
				set.add("o");
			} set.add("o") set.add set "o" if(a<3200){
				set.add("red");
			}
			else{
				red++;
			} a<3200 a 3200 {
				set.add("red");
			} set.add("red") set.add set "red" {
				red++;
			} red++ red int min = Math.max(set.size(),1); min Math.max(set.size(),1) Math.max Math set.size() set.size set 1 int max = min + red; max min + red min red if(set.size() == 0){
			max = red;
		} set.size() == 0 set.size() set.size set 0 {
			max = red;
		} max = red max red out.println(min + " " + max) out.println out min + " " + max min + " " + max min " " max sc.close() sc.close sc out.flush() out.flush out String[] args args public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		PrintWriter out = new PrintWriter(System.out);
		int N = Integer.parseInt(sc.next());
		HashSet<String> set = new HashSet<>();
		int red = 0;
		for(int i= 0; i<N; i++){
			int a = Integer.parseInt(sc.next());
			if(a<400){
				set.add("gray");
			}
			else if(a<800){
				set.add("brown");
			}
			else if(a<1200){
				set.add("g");
			}
			else if(a<1600){
				set.add("a");
			}
			else if(a<2000){
				set.add("b");
			}
			else if(a<2400){
				set.add("y");
			}
			else if(a<2800){
				set.add("o");
			}
			else if(a<3200){
				set.add("red");
			}
			else{
				red++;
			}
		}
		int min = Math.max(set.size(),1);
		int max = min + red;
		if(set.size() == 0){
			max = red;
		}
		out.println(min + " " + max);
		
		sc.close();
		out.flush();
	}
} public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		PrintWriter out = new PrintWriter(System.out);
		int N = Integer.parseInt(sc.next());
		HashSet<String> set = new HashSet<>();
		int red = 0;
		for(int i= 0; i<N; i++){
			int a = Integer.parseInt(sc.next());
			if(a<400){
				set.add("gray");
			}
			else if(a<800){
				set.add("brown");
			}
			else if(a<1200){
				set.add("g");
			}
			else if(a<1600){
				set.add("a");
			}
			else if(a<2000){
				set.add("b");
			}
			else if(a<2400){
				set.add("y");
			}
			else if(a<2800){
				set.add("o");
			}
			else if(a<3200){
				set.add("red");
			}
			else{
				red++;
			}
		}
		int min = Math.max(set.size(),1);
		int max = min + red;
		if(set.size() == 0){
			max = red;
		}
		out.println(min + " " + max);
		
		sc.close();
		out.flush();
	}
} Main

import java.io.PrintWriter;
import java.util.*;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		PrintWriter out = new PrintWriter(System.out);
		int N = Integer.parseInt(sc.next());
		HashSet<String> set = new HashSet<>();
		int red = 0;
		for(int i= 0; i<N; i++){
			int a = Integer.parseInt(sc.next());
			if(a<400){
				set.add("gray");
			}
			else if(a<800){
				set.add("brown");
			}
			else if(a<1200){
				set.add("g");
			}
			else if(a<1600){
				set.add("a");
			}
			else if(a<2000){
				set.add("b");
			}
			else if(a<2400){
				set.add("y");
			}
			else if(a<2800){
				set.add("o");
			}
			else if(a<3200){
				set.add("red");
			}
			else{
				red++;
			}
		}
		int min = Math.max(set.size(),1);
		int max = min + red;
		if(set.size() == 0){
			max = red;
		}
		out.println(min + " " + max);
		
		sc.close();
		out.flush();
	}
}