import java.util.*;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		boolean[] c = new boolean[8];
		int fc = 0;
		
		for (int i = 0; i < N; i++) {
			int n = sc.nextInt();
			if (n < 400) {
				c[0] = true;
			} else if (n < 800) {
				c[1] = true;
			} else if (n < 1200) {
				c[2] = true;
			} else if (n < 1600) {
				c[3] = true;
			} else if (n < 2000) {
				c[4] = true;
			} else if (n < 2400) {
				c[5] = true;
			} else if (n < 2800) {
				c[6] = true;
			} else if (n < 3200) {
				c[7] = true;
			} else {
				fc++;
			}
		}
		
		int min = 0;
		for (int i = 0; i < c.length; i++) {
			if (c[i]) {
				min++;
			}
		}
		
		System.out.println(Math.max(1, min) + " " + (min + fc));
	}
} import java.util.*; util.* java public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		boolean[] c = new boolean[8];
		int fc = 0;
		
		for (int i = 0; i < N; i++) {
			int n = sc.nextInt();
			if (n < 400) {
				c[0] = true;
			} else if (n < 800) {
				c[1] = true;
			} else if (n < 1200) {
				c[2] = true;
			} else if (n < 1600) {
				c[3] = true;
			} else if (n < 2000) {
				c[4] = true;
			} else if (n < 2400) {
				c[5] = true;
			} else if (n < 2800) {
				c[6] = true;
			} else if (n < 3200) {
				c[7] = true;
			} else {
				fc++;
			}
		}
		
		int min = 0;
		for (int i = 0; i < c.length; i++) {
			if (c[i]) {
				min++;
			}
		}
		
		System.out.println(Math.max(1, min) + " " + (min + fc));
	}
} Main public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		boolean[] c = new boolean[8];
		int fc = 0;
		
		for (int i = 0; i < N; i++) {
			int n = sc.nextInt();
			if (n < 400) {
				c[0] = true;
			} else if (n < 800) {
				c[1] = true;
			} else if (n < 1200) {
				c[2] = true;
			} else if (n < 1600) {
				c[3] = true;
			} else if (n < 2000) {
				c[4] = true;
			} else if (n < 2400) {
				c[5] = true;
			} else if (n < 2800) {
				c[6] = true;
			} else if (n < 3200) {
				c[7] = true;
			} else {
				fc++;
			}
		}
		
		int min = 0;
		for (int i = 0; i < c.length; i++) {
			if (c[i]) {
				min++;
			}
		}
		
		System.out.println(Math.max(1, min) + " " + (min + fc));
	} main {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		boolean[] c = new boolean[8];
		int fc = 0;
		
		for (int i = 0; i < N; i++) {
			int n = sc.nextInt();
			if (n < 400) {
				c[0] = true;
			} else if (n < 800) {
				c[1] = true;
			} else if (n < 1200) {
				c[2] = true;
			} else if (n < 1600) {
				c[3] = true;
			} else if (n < 2000) {
				c[4] = true;
			} else if (n < 2400) {
				c[5] = true;
			} else if (n < 2800) {
				c[6] = true;
			} else if (n < 3200) {
				c[7] = true;
			} else {
				fc++;
			}
		}
		
		int min = 0;
		for (int i = 0; i < c.length; i++) {
			if (c[i]) {
				min++;
			}
		}
		
		System.out.println(Math.max(1, min) + " " + (min + fc));
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int N = sc.nextInt(); N sc.nextInt() sc.nextInt sc boolean[] c = new boolean[8]; c new boolean[8] 8 int fc = 0; fc 0 for (int i = 0; i < N; i++) {
			int n = sc.nextInt();
			if (n < 400) {
				c[0] = true;
			} else if (n < 800) {
				c[1] = true;
			} else if (n < 1200) {
				c[2] = true;
			} else if (n < 1600) {
				c[3] = true;
			} else if (n < 2000) {
				c[4] = true;
			} else if (n < 2400) {
				c[5] = true;
			} else if (n < 2800) {
				c[6] = true;
			} else if (n < 3200) {
				c[7] = true;
			} else {
				fc++;
			}
		} int i = 0; int i = 0; i 0 i < N i N i++ i++ i {
			int n = sc.nextInt();
			if (n < 400) {
				c[0] = true;
			} else if (n < 800) {
				c[1] = true;
			} else if (n < 1200) {
				c[2] = true;
			} else if (n < 1600) {
				c[3] = true;
			} else if (n < 2000) {
				c[4] = true;
			} else if (n < 2400) {
				c[5] = true;
			} else if (n < 2800) {
				c[6] = true;
			} else if (n < 3200) {
				c[7] = true;
			} else {
				fc++;
			}
		} {
			int n = sc.nextInt();
			if (n < 400) {
				c[0] = true;
			} else if (n < 800) {
				c[1] = true;
			} else if (n < 1200) {
				c[2] = true;
			} else if (n < 1600) {
				c[3] = true;
			} else if (n < 2000) {
				c[4] = true;
			} else if (n < 2400) {
				c[5] = true;
			} else if (n < 2800) {
				c[6] = true;
			} else if (n < 3200) {
				c[7] = true;
			} else {
				fc++;
			}
		} int n = sc.nextInt(); n sc.nextInt() sc.nextInt sc if (n < 400) {
				c[0] = true;
			} else if (n < 800) {
				c[1] = true;
			} else if (n < 1200) {
				c[2] = true;
			} else if (n < 1600) {
				c[3] = true;
			} else if (n < 2000) {
				c[4] = true;
			} else if (n < 2400) {
				c[5] = true;
			} else if (n < 2800) {
				c[6] = true;
			} else if (n < 3200) {
				c[7] = true;
			} else {
				fc++;
			} n < 400 n 400 {
				c[0] = true;
			} c[0] = true c[0] c 0 true if (n < 800) {
				c[1] = true;
			} else if (n < 1200) {
				c[2] = true;
			} else if (n < 1600) {
				c[3] = true;
			} else if (n < 2000) {
				c[4] = true;
			} else if (n < 2400) {
				c[5] = true;
			} else if (n < 2800) {
				c[6] = true;
			} else if (n < 3200) {
				c[7] = true;
			} else {
				fc++;
			} n < 800 n 800 {
				c[1] = true;
			} c[1] = true c[1] c 1 true if (n < 1200) {
				c[2] = true;
			} else if (n < 1600) {
				c[3] = true;
			} else if (n < 2000) {
				c[4] = true;
			} else if (n < 2400) {
				c[5] = true;
			} else if (n < 2800) {
				c[6] = true;
			} else if (n < 3200) {
				c[7] = true;
			} else {
				fc++;
			} n < 1200 n 1200 {
				c[2] = true;
			} c[2] = true c[2] c 2 true if (n < 1600) {
				c[3] = true;
			} else if (n < 2000) {
				c[4] = true;
			} else if (n < 2400) {
				c[5] = true;
			} else if (n < 2800) {
				c[6] = true;
			} else if (n < 3200) {
				c[7] = true;
			} else {
				fc++;
			} n < 1600 n 1600 {
				c[3] = true;
			} c[3] = true c[3] c 3 true if (n < 2000) {
				c[4] = true;
			} else if (n < 2400) {
				c[5] = true;
			} else if (n < 2800) {
				c[6] = true;
			} else if (n < 3200) {
				c[7] = true;
			} else {
				fc++;
			} n < 2000 n 2000 {
				c[4] = true;
			} c[4] = true c[4] c 4 true if (n < 2400) {
				c[5] = true;
			} else if (n < 2800) {
				c[6] = true;
			} else if (n < 3200) {
				c[7] = true;
			} else {
				fc++;
			} n < 2400 n 2400 {
				c[5] = true;
			} c[5] = true c[5] c 5 true if (n < 2800) {
				c[6] = true;
			} else if (n < 3200) {
				c[7] = true;
			} else {
				fc++;
			} n < 2800 n 2800 {
				c[6] = true;
			} c[6] = true c[6] c 6 true if (n < 3200) {
				c[7] = true;
			} else {
				fc++;
			} n < 3200 n 3200 {
				c[7] = true;
			} c[7] = true c[7] c 7 true {
				fc++;
			} fc++ fc int min = 0; min 0 for (int i = 0; i < c.length; i++) {
			if (c[i]) {
				min++;
			}
		} int i = 0; int i = 0; i 0 i < c.length i c.length c c.length i++ i++ i {
			if (c[i]) {
				min++;
			}
		} {
			if (c[i]) {
				min++;
			}
		} if (c[i]) {
				min++;
			} c[i] c i {
				min++;
			} min++ min System.out.println(Math.max(1, min) + " " + (min + fc)) System.out.println System.out System System.out Math.max(1, min) + " " + (min + fc) Math.max(1, min) + " " + (min + fc) Math.max(1, min) Math.max Math 1 min " " (min + fc) min fc String[] args args public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		boolean[] c = new boolean[8];
		int fc = 0;
		
		for (int i = 0; i < N; i++) {
			int n = sc.nextInt();
			if (n < 400) {
				c[0] = true;
			} else if (n < 800) {
				c[1] = true;
			} else if (n < 1200) {
				c[2] = true;
			} else if (n < 1600) {
				c[3] = true;
			} else if (n < 2000) {
				c[4] = true;
			} else if (n < 2400) {
				c[5] = true;
			} else if (n < 2800) {
				c[6] = true;
			} else if (n < 3200) {
				c[7] = true;
			} else {
				fc++;
			}
		}
		
		int min = 0;
		for (int i = 0; i < c.length; i++) {
			if (c[i]) {
				min++;
			}
		}
		
		System.out.println(Math.max(1, min) + " " + (min + fc));
	}
} public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		boolean[] c = new boolean[8];
		int fc = 0;
		
		for (int i = 0; i < N; i++) {
			int n = sc.nextInt();
			if (n < 400) {
				c[0] = true;
			} else if (n < 800) {
				c[1] = true;
			} else if (n < 1200) {
				c[2] = true;
			} else if (n < 1600) {
				c[3] = true;
			} else if (n < 2000) {
				c[4] = true;
			} else if (n < 2400) {
				c[5] = true;
			} else if (n < 2800) {
				c[6] = true;
			} else if (n < 3200) {
				c[7] = true;
			} else {
				fc++;
			}
		}
		
		int min = 0;
		for (int i = 0; i < c.length; i++) {
			if (c[i]) {
				min++;
			}
		}
		
		System.out.println(Math.max(1, min) + " " + (min + fc));
	}
} Main
import java.util.*;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		boolean[] c = new boolean[8];
		int fc = 0;
		
		for (int i = 0; i < N; i++) {
			int n = sc.nextInt();
			if (n < 400) {
				c[0] = true;
			} else if (n < 800) {
				c[1] = true;
			} else if (n < 1200) {
				c[2] = true;
			} else if (n < 1600) {
				c[3] = true;
			} else if (n < 2000) {
				c[4] = true;
			} else if (n < 2400) {
				c[5] = true;
			} else if (n < 2800) {
				c[6] = true;
			} else if (n < 3200) {
				c[7] = true;
			} else {
				fc++;
			}
		}
		
		int min = 0;
		for (int i = 0; i < c.length; i++) {
			if (c[i]) {
				min++;
			}
		}
		
		System.out.println(Math.max(1, min) + " " + (min + fc));
	}
}
