import java.util.*;

public class Main{
	public static void main(String[] args){
		try(Scanner sc = new Scanner(System.in)){
			int N = sc.nextInt();
			int[] D = new int[9];
			for(int i = 0; i < N; i++){
				int now = sc.nextInt();
				if(now>=3200){
					D[8]++;
				}else{
					D[now/400]++;
				}
			}
			int ansmin = 0, ansmax = 0;
			for(int i = 0; i < 8; i++){
				if(D[i]!=0){
					ansmin++;
					ansmax++;
				}
			}
			if(ansmin == 0){
				ansmin++;
			}
			ansmax += D[8];
			System.out.println(ansmin + " " + ansmax);
		}
	}
} import java.util.*; util.* java public class Main{
	public static void main(String[] args){
		try(Scanner sc = new Scanner(System.in)){
			int N = sc.nextInt();
			int[] D = new int[9];
			for(int i = 0; i < N; i++){
				int now = sc.nextInt();
				if(now>=3200){
					D[8]++;
				}else{
					D[now/400]++;
				}
			}
			int ansmin = 0, ansmax = 0;
			for(int i = 0; i < 8; i++){
				if(D[i]!=0){
					ansmin++;
					ansmax++;
				}
			}
			if(ansmin == 0){
				ansmin++;
			}
			ansmax += D[8];
			System.out.println(ansmin + " " + ansmax);
		}
	}
} Main public static void main(String[] args){
		try(Scanner sc = new Scanner(System.in)){
			int N = sc.nextInt();
			int[] D = new int[9];
			for(int i = 0; i < N; i++){
				int now = sc.nextInt();
				if(now>=3200){
					D[8]++;
				}else{
					D[now/400]++;
				}
			}
			int ansmin = 0, ansmax = 0;
			for(int i = 0; i < 8; i++){
				if(D[i]!=0){
					ansmin++;
					ansmax++;
				}
			}
			if(ansmin == 0){
				ansmin++;
			}
			ansmax += D[8];
			System.out.println(ansmin + " " + ansmax);
		}
	} main {
		try(Scanner sc = new Scanner(System.in)){
			int N = sc.nextInt();
			int[] D = new int[9];
			for(int i = 0; i < N; i++){
				int now = sc.nextInt();
				if(now>=3200){
					D[8]++;
				}else{
					D[now/400]++;
				}
			}
			int ansmin = 0, ansmax = 0;
			for(int i = 0; i < 8; i++){
				if(D[i]!=0){
					ansmin++;
					ansmax++;
				}
			}
			if(ansmin == 0){
				ansmin++;
			}
			ansmax += D[8];
			System.out.println(ansmin + " " + ansmax);
		}
	} try(Scanner sc = new Scanner(System.in)){
			int N = sc.nextInt();
			int[] D = new int[9];
			for(int i = 0; i < N; i++){
				int now = sc.nextInt();
				if(now>=3200){
					D[8]++;
				}else{
					D[now/400]++;
				}
			}
			int ansmin = 0, ansmax = 0;
			for(int i = 0; i < 8; i++){
				if(D[i]!=0){
					ansmin++;
					ansmax++;
				}
			}
			if(ansmin == 0){
				ansmin++;
			}
			ansmax += D[8];
			System.out.println(ansmin + " " + ansmax);
		} {
			int N = sc.nextInt();
			int[] D = new int[9];
			for(int i = 0; i < N; i++){
				int now = sc.nextInt();
				if(now>=3200){
					D[8]++;
				}else{
					D[now/400]++;
				}
			}
			int ansmin = 0, ansmax = 0;
			for(int i = 0; i < 8; i++){
				if(D[i]!=0){
					ansmin++;
					ansmax++;
				}
			}
			if(ansmin == 0){
				ansmin++;
			}
			ansmax += D[8];
			System.out.println(ansmin + " " + ansmax);
		} Scanner sc = new Scanner(System.in) Scanner sc = new Scanner(System.in) new Scanner(System.in) int N = sc.nextInt(); N sc.nextInt() sc.nextInt sc int[] D = new int[9]; D new int[9] 9 for(int i = 0; i < N; i++){
				int now = sc.nextInt();
				if(now>=3200){
					D[8]++;
				}else{
					D[now/400]++;
				}
			} int i = 0; int i = 0; i 0 i < N i N i++ i++ i {
				int now = sc.nextInt();
				if(now>=3200){
					D[8]++;
				}else{
					D[now/400]++;
				}
			} {
				int now = sc.nextInt();
				if(now>=3200){
					D[8]++;
				}else{
					D[now/400]++;
				}
			} int now = sc.nextInt(); now sc.nextInt() sc.nextInt sc if(now>=3200){
					D[8]++;
				}else{
					D[now/400]++;
				} now>=3200 now 3200 {
					D[8]++;
				} D[8]++ D[8] D 8 {
					D[now/400]++;
				} D[now/400]++ D[now/400] D now/400 now 400 int ansmin = 0 ansmin 0 ansmax = 0; ansmax 0 for(int i = 0; i < 8; i++){
				if(D[i]!=0){
					ansmin++;
					ansmax++;
				}
			} int i = 0; int i = 0; i 0 i < 8 i 8 i++ i++ i {
				if(D[i]!=0){
					ansmin++;
					ansmax++;
				}
			} {
				if(D[i]!=0){
					ansmin++;
					ansmax++;
				}
			} if(D[i]!=0){
					ansmin++;
					ansmax++;
				} D[i]!=0 D[i] D i 0 {
					ansmin++;
					ansmax++;
				} ansmin++ ansmin ansmax++ ansmax if(ansmin == 0){
				ansmin++;
			} ansmin == 0 ansmin 0 {
				ansmin++;
			} ansmin++ ansmin ansmax += D[8] ansmax D[8] D 8 System.out.println(ansmin + " " + ansmax) System.out.println System.out System System.out ansmin + " " + ansmax ansmin + " " + ansmax ansmin " " ansmax String[] args args public class Main{
	public static void main(String[] args){
		try(Scanner sc = new Scanner(System.in)){
			int N = sc.nextInt();
			int[] D = new int[9];
			for(int i = 0; i < N; i++){
				int now = sc.nextInt();
				if(now>=3200){
					D[8]++;
				}else{
					D[now/400]++;
				}
			}
			int ansmin = 0, ansmax = 0;
			for(int i = 0; i < 8; i++){
				if(D[i]!=0){
					ansmin++;
					ansmax++;
				}
			}
			if(ansmin == 0){
				ansmin++;
			}
			ansmax += D[8];
			System.out.println(ansmin + " " + ansmax);
		}
	}
} public class Main{
	public static void main(String[] args){
		try(Scanner sc = new Scanner(System.in)){
			int N = sc.nextInt();
			int[] D = new int[9];
			for(int i = 0; i < N; i++){
				int now = sc.nextInt();
				if(now>=3200){
					D[8]++;
				}else{
					D[now/400]++;
				}
			}
			int ansmin = 0, ansmax = 0;
			for(int i = 0; i < 8; i++){
				if(D[i]!=0){
					ansmin++;
					ansmax++;
				}
			}
			if(ansmin == 0){
				ansmin++;
			}
			ansmax += D[8];
			System.out.println(ansmin + " " + ansmax);
		}
	}
} Main
import java.util.*;

public class Main{
	public static void main(String[] args){
		try(Scanner sc = new Scanner(System.in)){
			int N = sc.nextInt();
			int[] D = new int[9];
			for(int i = 0; i < N; i++){
				int now = sc.nextInt();
				if(now>=3200){
					D[8]++;
				}else{
					D[now/400]++;
				}
			}
			int ansmin = 0, ansmax = 0;
			for(int i = 0; i < 8; i++){
				if(D[i]!=0){
					ansmin++;
					ansmax++;
				}
			}
			if(ansmin == 0){
				ansmin++;
			}
			ansmax += D[8];
			System.out.println(ansmin + " " + ansmax);
		}
	}
}