import java.util.Scanner;

public class Main {
	public static void main(String[] args){
		Main main = new Main();
		main.solveC();
	}

	private void solveA() {
		Scanner sc = new Scanner(System.in);
		int r = sc.nextInt();
		int g = sc.nextInt();
		int b = sc.nextInt();
		System.out.println((g * 10 + b) % 4 == 0 ? "YES" : "NO");
	}

	private void solveB() {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		int min = 1000;
		int max = 0;
		for (int i = 0; i < N; i++) {
			int a = sc.nextInt();
			if (min > a) {
				min = a;
			}
			if (max < a) {
				max = a;
			}
		}
		System.out.println(max - min);
	}

	private void solveC() {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		int[] rates = new int[9];
		for (int i = 0; i < N; i++) {
			int a = sc.nextInt();
			int index = a / 400;
			rates[index > 8 ? 8 : index]++;
		}
		int kind = 0;
		for (int j = 0; j < 8; j++) {
			if (rates[j] > 0) {
				kind++;
			}
		}
		int min = kind;
		if (rates[8] > 0 && min == 0) {
			min = 1;
		}
		int max = kind + rates[8];
		System.out.println(min + " " + max);
	}

	private void solveD() {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		String S = sc.next();
		int left = 0;
		int need = 0;
		for (int i = 0; i < N; i++) {
			char c = S.charAt(i);
			if (c == '(') {
				left++;
			} else {
				if (left > 0) {
					left--;
				} else {
					need++;
				}
			}
		}
		for (int n = 0; n < need; n++) {
			System.out.print('(');
		}
		System.out.print(S);
		for (int n = 0; n < left; n++) {
			System.out.print(')');
		}
		System.out.println();
	}
} import java.util.Scanner; Scanner java.util public class Main {
	public static void main(String[] args){
		Main main = new Main();
		main.solveC();
	}

	private void solveA() {
		Scanner sc = new Scanner(System.in);
		int r = sc.nextInt();
		int g = sc.nextInt();
		int b = sc.nextInt();
		System.out.println((g * 10 + b) % 4 == 0 ? "YES" : "NO");
	}

	private void solveB() {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		int min = 1000;
		int max = 0;
		for (int i = 0; i < N; i++) {
			int a = sc.nextInt();
			if (min > a) {
				min = a;
			}
			if (max < a) {
				max = a;
			}
		}
		System.out.println(max - min);
	}

	private void solveC() {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		int[] rates = new int[9];
		for (int i = 0; i < N; i++) {
			int a = sc.nextInt();
			int index = a / 400;
			rates[index > 8 ? 8 : index]++;
		}
		int kind = 0;
		for (int j = 0; j < 8; j++) {
			if (rates[j] > 0) {
				kind++;
			}
		}
		int min = kind;
		if (rates[8] > 0 && min == 0) {
			min = 1;
		}
		int max = kind + rates[8];
		System.out.println(min + " " + max);
	}

	private void solveD() {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		String S = sc.next();
		int left = 0;
		int need = 0;
		for (int i = 0; i < N; i++) {
			char c = S.charAt(i);
			if (c == '(') {
				left++;
			} else {
				if (left > 0) {
					left--;
				} else {
					need++;
				}
			}
		}
		for (int n = 0; n < need; n++) {
			System.out.print('(');
		}
		System.out.print(S);
		for (int n = 0; n < left; n++) {
			System.out.print(')');
		}
		System.out.println();
	}
} Main public static void main(String[] args){
		Main main = new Main();
		main.solveC();
	} main {
		Main main = new Main();
		main.solveC();
	} Main main = new Main(); main new Main() main.solveC() main.solveC main String[] args args private void solveA() {
		Scanner sc = new Scanner(System.in);
		int r = sc.nextInt();
		int g = sc.nextInt();
		int b = sc.nextInt();
		System.out.println((g * 10 + b) % 4 == 0 ? "YES" : "NO");
	} solveA {
		Scanner sc = new Scanner(System.in);
		int r = sc.nextInt();
		int g = sc.nextInt();
		int b = sc.nextInt();
		System.out.println((g * 10 + b) % 4 == 0 ? "YES" : "NO");
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int r = sc.nextInt(); r sc.nextInt() sc.nextInt sc int g = sc.nextInt(); g sc.nextInt() sc.nextInt sc int b = sc.nextInt(); b sc.nextInt() sc.nextInt sc System.out.println((g * 10 + b) % 4 == 0 ? "YES" : "NO") System.out.println System.out System System.out (g * 10 + b) % 4 == 0 ? "YES" : "NO" (g * 10 + b) % 4 == 0 (g * 10 + b) % 4 (g * 10 + b) g * 10 g 10 b 4 0 "YES" "NO" private void solveB() {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		int min = 1000;
		int max = 0;
		for (int i = 0; i < N; i++) {
			int a = sc.nextInt();
			if (min > a) {
				min = a;
			}
			if (max < a) {
				max = a;
			}
		}
		System.out.println(max - min);
	} solveB {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		int min = 1000;
		int max = 0;
		for (int i = 0; i < N; i++) {
			int a = sc.nextInt();
			if (min > a) {
				min = a;
			}
			if (max < a) {
				max = a;
			}
		}
		System.out.println(max - min);
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int N = sc.nextInt(); N sc.nextInt() sc.nextInt sc int min = 1000; min 1000 int max = 0; max 0 for (int i = 0; i < N; i++) {
			int a = sc.nextInt();
			if (min > a) {
				min = a;
			}
			if (max < a) {
				max = a;
			}
		} int i = 0; int i = 0; i 0 i < N i N i++ i++ i {
			int a = sc.nextInt();
			if (min > a) {
				min = a;
			}
			if (max < a) {
				max = a;
			}
		} {
			int a = sc.nextInt();
			if (min > a) {
				min = a;
			}
			if (max < a) {
				max = a;
			}
		} int a = sc.nextInt(); a sc.nextInt() sc.nextInt sc if (min > a) {
				min = a;
			} min > a min a {
				min = a;
			} min = a min a if (max < a) {
				max = a;
			} max < a max a {
				max = a;
			} max = a max a System.out.println(max - min) System.out.println System.out System System.out max - min max min private void solveC() {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		int[] rates = new int[9];
		for (int i = 0; i < N; i++) {
			int a = sc.nextInt();
			int index = a / 400;
			rates[index > 8 ? 8 : index]++;
		}
		int kind = 0;
		for (int j = 0; j < 8; j++) {
			if (rates[j] > 0) {
				kind++;
			}
		}
		int min = kind;
		if (rates[8] > 0 && min == 0) {
			min = 1;
		}
		int max = kind + rates[8];
		System.out.println(min + " " + max);
	} solveC {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		int[] rates = new int[9];
		for (int i = 0; i < N; i++) {
			int a = sc.nextInt();
			int index = a / 400;
			rates[index > 8 ? 8 : index]++;
		}
		int kind = 0;
		for (int j = 0; j < 8; j++) {
			if (rates[j] > 0) {
				kind++;
			}
		}
		int min = kind;
		if (rates[8] > 0 && min == 0) {
			min = 1;
		}
		int max = kind + rates[8];
		System.out.println(min + " " + max);
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int N = sc.nextInt(); N sc.nextInt() sc.nextInt sc int[] rates = new int[9]; rates new int[9] 9 for (int i = 0; i < N; i++) {
			int a = sc.nextInt();
			int index = a / 400;
			rates[index > 8 ? 8 : index]++;
		} int i = 0; int i = 0; i 0 i < N i N i++ i++ i {
			int a = sc.nextInt();
			int index = a / 400;
			rates[index > 8 ? 8 : index]++;
		} {
			int a = sc.nextInt();
			int index = a / 400;
			rates[index > 8 ? 8 : index]++;
		} int a = sc.nextInt(); a sc.nextInt() sc.nextInt sc int index = a / 400; index a / 400 a 400 rates[index > 8 ? 8 : index]++ rates[index > 8 ? 8 : index] rates index > 8 ? 8 : index index > 8 index 8 8 index int kind = 0; kind 0 for (int j = 0; j < 8; j++) {
			if (rates[j] > 0) {
				kind++;
			}
		} int j = 0; int j = 0; j 0 j < 8 j 8 j++ j++ j {
			if (rates[j] > 0) {
				kind++;
			}
		} {
			if (rates[j] > 0) {
				kind++;
			}
		} if (rates[j] > 0) {
				kind++;
			} rates[j] > 0 rates[j] rates j 0 {
				kind++;
			} kind++ kind int min = kind; min kind if (rates[8] > 0 && min == 0) {
			min = 1;
		} rates[8] > 0 && min == 0 rates[8] > 0 rates[8] rates 8 0 min == 0 min 0 {
			min = 1;
		} min = 1 min 1 int max = kind + rates[8]; max kind + rates[8] kind rates[8] rates 8 System.out.println(min + " " + max) System.out.println System.out System System.out min + " " + max min + " " + max min " " max private void solveD() {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		String S = sc.next();
		int left = 0;
		int need = 0;
		for (int i = 0; i < N; i++) {
			char c = S.charAt(i);
			if (c == '(') {
				left++;
			} else {
				if (left > 0) {
					left--;
				} else {
					need++;
				}
			}
		}
		for (int n = 0; n < need; n++) {
			System.out.print('(');
		}
		System.out.print(S);
		for (int n = 0; n < left; n++) {
			System.out.print(')');
		}
		System.out.println();
	} solveD {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		String S = sc.next();
		int left = 0;
		int need = 0;
		for (int i = 0; i < N; i++) {
			char c = S.charAt(i);
			if (c == '(') {
				left++;
			} else {
				if (left > 0) {
					left--;
				} else {
					need++;
				}
			}
		}
		for (int n = 0; n < need; n++) {
			System.out.print('(');
		}
		System.out.print(S);
		for (int n = 0; n < left; n++) {
			System.out.print(')');
		}
		System.out.println();
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int N = sc.nextInt(); N sc.nextInt() sc.nextInt sc String S = sc.next(); S sc.next() sc.next sc int left = 0; left 0 int need = 0; need 0 for (int i = 0; i < N; i++) {
			char c = S.charAt(i);
			if (c == '(') {
				left++;
			} else {
				if (left > 0) {
					left--;
				} else {
					need++;
				}
			}
		} int i = 0; int i = 0; i 0 i < N i N i++ i++ i {
			char c = S.charAt(i);
			if (c == '(') {
				left++;
			} else {
				if (left > 0) {
					left--;
				} else {
					need++;
				}
			}
		} {
			char c = S.charAt(i);
			if (c == '(') {
				left++;
			} else {
				if (left > 0) {
					left--;
				} else {
					need++;
				}
			}
		} char c = S.charAt(i); c S.charAt(i) S.charAt S i if (c == '(') {
				left++;
			} else {
				if (left > 0) {
					left--;
				} else {
					need++;
				}
			} c == '(' c '(' {
				left++;
			} left++ left {
				if (left > 0) {
					left--;
				} else {
					need++;
				}
			} if (left > 0) {
					left--;
				} else {
					need++;
				} left > 0 left 0 {
					left--;
				} left-- left {
					need++;
				} need++ need for (int n = 0; n < need; n++) {
			System.out.print('(');
		} int n = 0; int n = 0; n 0 n < need n need n++ n++ n {
			System.out.print('(');
		} {
			System.out.print('(');
		} System.out.print('(') System.out.print System.out System System.out '(' System.out.print(S) System.out.print System.out System System.out S for (int n = 0; n < left; n++) {
			System.out.print(')');
		} int n = 0; int n = 0; n 0 n < left n left n++ n++ n {
			System.out.print(')');
		} {
			System.out.print(')');
		} System.out.print(')') System.out.print System.out System System.out ')' System.out.println() System.out.println System.out System System.out public class Main {
	public static void main(String[] args){
		Main main = new Main();
		main.solveC();
	}

	private void solveA() {
		Scanner sc = new Scanner(System.in);
		int r = sc.nextInt();
		int g = sc.nextInt();
		int b = sc.nextInt();
		System.out.println((g * 10 + b) % 4 == 0 ? "YES" : "NO");
	}

	private void solveB() {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		int min = 1000;
		int max = 0;
		for (int i = 0; i < N; i++) {
			int a = sc.nextInt();
			if (min > a) {
				min = a;
			}
			if (max < a) {
				max = a;
			}
		}
		System.out.println(max - min);
	}

	private void solveC() {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		int[] rates = new int[9];
		for (int i = 0; i < N; i++) {
			int a = sc.nextInt();
			int index = a / 400;
			rates[index > 8 ? 8 : index]++;
		}
		int kind = 0;
		for (int j = 0; j < 8; j++) {
			if (rates[j] > 0) {
				kind++;
			}
		}
		int min = kind;
		if (rates[8] > 0 && min == 0) {
			min = 1;
		}
		int max = kind + rates[8];
		System.out.println(min + " " + max);
	}

	private void solveD() {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		String S = sc.next();
		int left = 0;
		int need = 0;
		for (int i = 0; i < N; i++) {
			char c = S.charAt(i);
			if (c == '(') {
				left++;
			} else {
				if (left > 0) {
					left--;
				} else {
					need++;
				}
			}
		}
		for (int n = 0; n < need; n++) {
			System.out.print('(');
		}
		System.out.print(S);
		for (int n = 0; n < left; n++) {
			System.out.print(')');
		}
		System.out.println();
	}
} public class Main {
	public static void main(String[] args){
		Main main = new Main();
		main.solveC();
	}

	private void solveA() {
		Scanner sc = new Scanner(System.in);
		int r = sc.nextInt();
		int g = sc.nextInt();
		int b = sc.nextInt();
		System.out.println((g * 10 + b) % 4 == 0 ? "YES" : "NO");
	}

	private void solveB() {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		int min = 1000;
		int max = 0;
		for (int i = 0; i < N; i++) {
			int a = sc.nextInt();
			if (min > a) {
				min = a;
			}
			if (max < a) {
				max = a;
			}
		}
		System.out.println(max - min);
	}

	private void solveC() {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		int[] rates = new int[9];
		for (int i = 0; i < N; i++) {
			int a = sc.nextInt();
			int index = a / 400;
			rates[index > 8 ? 8 : index]++;
		}
		int kind = 0;
		for (int j = 0; j < 8; j++) {
			if (rates[j] > 0) {
				kind++;
			}
		}
		int min = kind;
		if (rates[8] > 0 && min == 0) {
			min = 1;
		}
		int max = kind + rates[8];
		System.out.println(min + " " + max);
	}

	private void solveD() {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		String S = sc.next();
		int left = 0;
		int need = 0;
		for (int i = 0; i < N; i++) {
			char c = S.charAt(i);
			if (c == '(') {
				left++;
			} else {
				if (left > 0) {
					left--;
				} else {
					need++;
				}
			}
		}
		for (int n = 0; n < need; n++) {
			System.out.print('(');
		}
		System.out.print(S);
		for (int n = 0; n < left; n++) {
			System.out.print(')');
		}
		System.out.println();
	}
} Main
import java.util.Scanner;

public class Main {
	public static void main(String[] args){
		Main main = new Main();
		main.solveC();
	}

	private void solveA() {
		Scanner sc = new Scanner(System.in);
		int r = sc.nextInt();
		int g = sc.nextInt();
		int b = sc.nextInt();
		System.out.println((g * 10 + b) % 4 == 0 ? "YES" : "NO");
	}

	private void solveB() {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		int min = 1000;
		int max = 0;
		for (int i = 0; i < N; i++) {
			int a = sc.nextInt();
			if (min > a) {
				min = a;
			}
			if (max < a) {
				max = a;
			}
		}
		System.out.println(max - min);
	}

	private void solveC() {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		int[] rates = new int[9];
		for (int i = 0; i < N; i++) {
			int a = sc.nextInt();
			int index = a / 400;
			rates[index > 8 ? 8 : index]++;
		}
		int kind = 0;
		for (int j = 0; j < 8; j++) {
			if (rates[j] > 0) {
				kind++;
			}
		}
		int min = kind;
		if (rates[8] > 0 && min == 0) {
			min = 1;
		}
		int max = kind + rates[8];
		System.out.println(min + " " + max);
	}

	private void solveD() {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		String S = sc.next();
		int left = 0;
		int need = 0;
		for (int i = 0; i < N; i++) {
			char c = S.charAt(i);
			if (c == '(') {
				left++;
			} else {
				if (left > 0) {
					left--;
				} else {
					need++;
				}
			}
		}
		for (int n = 0; n < need; n++) {
			System.out.print('(');
		}
		System.out.print(S);
		for (int n = 0; n < left; n++) {
			System.out.print(')');
		}
		System.out.println();
	}
}