import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int n = scanner.nextInt();
		long[] point = new long[8];
		int var = 0;
		for (int i = 0; i < n; i++) {
			int t = scanner.nextInt();
			if (t < 400) {
				point[0]++;
			} else if (t < 800) {
				point[1]++;
			} else if (t < 1200) {
				point[2]++;
			} else if (t < 1600) {
				point[3]++;
			} else if (t < 2000) {
				point[4]++;
			} else if (t < 2400) {
				point[5]++;
			} else if (t < 2800) {
				point[6]++;
			} else if (t < 3200) {
				point[7]++;
			} else {
				var++;
			}
		}
		int min = 0;
		for (int i = 0; i < point.length; i++) {
			if (point[i] > 0) {
				min++;
			}
		}
		int max = min + var;
		if (min == 0) {
			min = 1;
		}
		System.out.println(min+" "+max);
		scanner.close();
	}
} import java.util.Scanner; Scanner java.util public class Main {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int n = scanner.nextInt();
		long[] point = new long[8];
		int var = 0;
		for (int i = 0; i < n; i++) {
			int t = scanner.nextInt();
			if (t < 400) {
				point[0]++;
			} else if (t < 800) {
				point[1]++;
			} else if (t < 1200) {
				point[2]++;
			} else if (t < 1600) {
				point[3]++;
			} else if (t < 2000) {
				point[4]++;
			} else if (t < 2400) {
				point[5]++;
			} else if (t < 2800) {
				point[6]++;
			} else if (t < 3200) {
				point[7]++;
			} else {
				var++;
			}
		}
		int min = 0;
		for (int i = 0; i < point.length; i++) {
			if (point[i] > 0) {
				min++;
			}
		}
		int max = min + var;
		if (min == 0) {
			min = 1;
		}
		System.out.println(min+" "+max);
		scanner.close();
	}
} Main public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int n = scanner.nextInt();
		long[] point = new long[8];
		int var = 0;
		for (int i = 0; i < n; i++) {
			int t = scanner.nextInt();
			if (t < 400) {
				point[0]++;
			} else if (t < 800) {
				point[1]++;
			} else if (t < 1200) {
				point[2]++;
			} else if (t < 1600) {
				point[3]++;
			} else if (t < 2000) {
				point[4]++;
			} else if (t < 2400) {
				point[5]++;
			} else if (t < 2800) {
				point[6]++;
			} else if (t < 3200) {
				point[7]++;
			} else {
				var++;
			}
		}
		int min = 0;
		for (int i = 0; i < point.length; i++) {
			if (point[i] > 0) {
				min++;
			}
		}
		int max = min + var;
		if (min == 0) {
			min = 1;
		}
		System.out.println(min+" "+max);
		scanner.close();
	} main {
		Scanner scanner = new Scanner(System.in);
		int n = scanner.nextInt();
		long[] point = new long[8];
		int var = 0;
		for (int i = 0; i < n; i++) {
			int t = scanner.nextInt();
			if (t < 400) {
				point[0]++;
			} else if (t < 800) {
				point[1]++;
			} else if (t < 1200) {
				point[2]++;
			} else if (t < 1600) {
				point[3]++;
			} else if (t < 2000) {
				point[4]++;
			} else if (t < 2400) {
				point[5]++;
			} else if (t < 2800) {
				point[6]++;
			} else if (t < 3200) {
				point[7]++;
			} else {
				var++;
			}
		}
		int min = 0;
		for (int i = 0; i < point.length; i++) {
			if (point[i] > 0) {
				min++;
			}
		}
		int max = min + var;
		if (min == 0) {
			min = 1;
		}
		System.out.println(min+" "+max);
		scanner.close();
	} Scanner scanner = new Scanner(System.in); scanner new Scanner(System.in) int n = scanner.nextInt(); n scanner.nextInt() scanner.nextInt scanner long[] point = new long[8]; point new long[8] 8 int var = 0; var 0 for (int i = 0; i < n; i++) {
			int t = scanner.nextInt();
			if (t < 400) {
				point[0]++;
			} else if (t < 800) {
				point[1]++;
			} else if (t < 1200) {
				point[2]++;
			} else if (t < 1600) {
				point[3]++;
			} else if (t < 2000) {
				point[4]++;
			} else if (t < 2400) {
				point[5]++;
			} else if (t < 2800) {
				point[6]++;
			} else if (t < 3200) {
				point[7]++;
			} else {
				var++;
			}
		} int i = 0; int i = 0; i 0 i < n i n i++ i++ i {
			int t = scanner.nextInt();
			if (t < 400) {
				point[0]++;
			} else if (t < 800) {
				point[1]++;
			} else if (t < 1200) {
				point[2]++;
			} else if (t < 1600) {
				point[3]++;
			} else if (t < 2000) {
				point[4]++;
			} else if (t < 2400) {
				point[5]++;
			} else if (t < 2800) {
				point[6]++;
			} else if (t < 3200) {
				point[7]++;
			} else {
				var++;
			}
		} {
			int t = scanner.nextInt();
			if (t < 400) {
				point[0]++;
			} else if (t < 800) {
				point[1]++;
			} else if (t < 1200) {
				point[2]++;
			} else if (t < 1600) {
				point[3]++;
			} else if (t < 2000) {
				point[4]++;
			} else if (t < 2400) {
				point[5]++;
			} else if (t < 2800) {
				point[6]++;
			} else if (t < 3200) {
				point[7]++;
			} else {
				var++;
			}
		} int t = scanner.nextInt(); t scanner.nextInt() scanner.nextInt scanner if (t < 400) {
				point[0]++;
			} else if (t < 800) {
				point[1]++;
			} else if (t < 1200) {
				point[2]++;
			} else if (t < 1600) {
				point[3]++;
			} else if (t < 2000) {
				point[4]++;
			} else if (t < 2400) {
				point[5]++;
			} else if (t < 2800) {
				point[6]++;
			} else if (t < 3200) {
				point[7]++;
			} else {
				var++;
			} t < 400 t 400 {
				point[0]++;
			} point[0]++ point[0] point 0 if (t < 800) {
				point[1]++;
			} else if (t < 1200) {
				point[2]++;
			} else if (t < 1600) {
				point[3]++;
			} else if (t < 2000) {
				point[4]++;
			} else if (t < 2400) {
				point[5]++;
			} else if (t < 2800) {
				point[6]++;
			} else if (t < 3200) {
				point[7]++;
			} else {
				var++;
			} t < 800 t 800 {
				point[1]++;
			} point[1]++ point[1] point 1 if (t < 1200) {
				point[2]++;
			} else if (t < 1600) {
				point[3]++;
			} else if (t < 2000) {
				point[4]++;
			} else if (t < 2400) {
				point[5]++;
			} else if (t < 2800) {
				point[6]++;
			} else if (t < 3200) {
				point[7]++;
			} else {
				var++;
			} t < 1200 t 1200 {
				point[2]++;
			} point[2]++ point[2] point 2 if (t < 1600) {
				point[3]++;
			} else if (t < 2000) {
				point[4]++;
			} else if (t < 2400) {
				point[5]++;
			} else if (t < 2800) {
				point[6]++;
			} else if (t < 3200) {
				point[7]++;
			} else {
				var++;
			} t < 1600 t 1600 {
				point[3]++;
			} point[3]++ point[3] point 3 if (t < 2000) {
				point[4]++;
			} else if (t < 2400) {
				point[5]++;
			} else if (t < 2800) {
				point[6]++;
			} else if (t < 3200) {
				point[7]++;
			} else {
				var++;
			} t < 2000 t 2000 {
				point[4]++;
			} point[4]++ point[4] point 4 if (t < 2400) {
				point[5]++;
			} else if (t < 2800) {
				point[6]++;
			} else if (t < 3200) {
				point[7]++;
			} else {
				var++;
			} t < 2400 t 2400 {
				point[5]++;
			} point[5]++ point[5] point 5 if (t < 2800) {
				point[6]++;
			} else if (t < 3200) {
				point[7]++;
			} else {
				var++;
			} t < 2800 t 2800 {
				point[6]++;
			} point[6]++ point[6] point 6 if (t < 3200) {
				point[7]++;
			} else {
				var++;
			} t < 3200 t 3200 {
				point[7]++;
			} point[7]++ point[7] point 7 {
				var++;
			} var++ var int min = 0; min 0 for (int i = 0; i < point.length; i++) {
			if (point[i] > 0) {
				min++;
			}
		} int i = 0; int i = 0; i 0 i < point.length i point.length point point.length i++ i++ i {
			if (point[i] > 0) {
				min++;
			}
		} {
			if (point[i] > 0) {
				min++;
			}
		} if (point[i] > 0) {
				min++;
			} point[i] > 0 point[i] point i 0 {
				min++;
			} min++ min int max = min + var; max min + var min var if (min == 0) {
			min = 1;
		} min == 0 min 0 {
			min = 1;
		} min = 1 min 1 System.out.println(min+" "+max) System.out.println System.out System System.out min+" "+max min+" "+max min " " max scanner.close() scanner.close scanner String[] args args public class Main {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int n = scanner.nextInt();
		long[] point = new long[8];
		int var = 0;
		for (int i = 0; i < n; i++) {
			int t = scanner.nextInt();
			if (t < 400) {
				point[0]++;
			} else if (t < 800) {
				point[1]++;
			} else if (t < 1200) {
				point[2]++;
			} else if (t < 1600) {
				point[3]++;
			} else if (t < 2000) {
				point[4]++;
			} else if (t < 2400) {
				point[5]++;
			} else if (t < 2800) {
				point[6]++;
			} else if (t < 3200) {
				point[7]++;
			} else {
				var++;
			}
		}
		int min = 0;
		for (int i = 0; i < point.length; i++) {
			if (point[i] > 0) {
				min++;
			}
		}
		int max = min + var;
		if (min == 0) {
			min = 1;
		}
		System.out.println(min+" "+max);
		scanner.close();
	}
} public class Main {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int n = scanner.nextInt();
		long[] point = new long[8];
		int var = 0;
		for (int i = 0; i < n; i++) {
			int t = scanner.nextInt();
			if (t < 400) {
				point[0]++;
			} else if (t < 800) {
				point[1]++;
			} else if (t < 1200) {
				point[2]++;
			} else if (t < 1600) {
				point[3]++;
			} else if (t < 2000) {
				point[4]++;
			} else if (t < 2400) {
				point[5]++;
			} else if (t < 2800) {
				point[6]++;
			} else if (t < 3200) {
				point[7]++;
			} else {
				var++;
			}
		}
		int min = 0;
		for (int i = 0; i < point.length; i++) {
			if (point[i] > 0) {
				min++;
			}
		}
		int max = min + var;
		if (min == 0) {
			min = 1;
		}
		System.out.println(min+" "+max);
		scanner.close();
	}
} Main
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int n = scanner.nextInt();
		long[] point = new long[8];
		int var = 0;
		for (int i = 0; i < n; i++) {
			int t = scanner.nextInt();
			if (t < 400) {
				point[0]++;
			} else if (t < 800) {
				point[1]++;
			} else if (t < 1200) {
				point[2]++;
			} else if (t < 1600) {
				point[3]++;
			} else if (t < 2000) {
				point[4]++;
			} else if (t < 2400) {
				point[5]++;
			} else if (t < 2800) {
				point[6]++;
			} else if (t < 3200) {
				point[7]++;
			} else {
				var++;
			}
		}
		int min = 0;
		for (int i = 0; i < point.length; i++) {
			if (point[i] > 0) {
				min++;
			}
		}
		int max = min + var;
		if (min == 0) {
			min = 1;
		}
		System.out.println(min+" "+max);
		scanner.close();
	}
}