import java.util.Arrays;
import java.util.Scanner;

public class Main {

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

	public void execute() {
		Scanner sc = new Scanner(System.in);
		final int N = sc.nextInt();

		int[] rate = new int[N];
		int over = 0;
		int minColors = 0;
		int maxColors = 0;

		boolean[] c = new boolean[8];
		
		for (int i = 0; i < N; i++) {
			rate[i] = sc.nextInt();
			if(rate[i]>=3200) {
				over++;
			}
			else {
				c[(int)(rate[i]/400)] = true;
			}
		}

		for (boolean b: c) {
			if (b) {
				minColors++;
			}
		}
		
		maxColors = minColors + over;
		System.out.printf("%d %d\n", Math.max(minColors, 1), maxColors);
		sc.close();
	}

} import java.util.Arrays; Arrays java.util import java.util.Scanner; Scanner java.util public class Main {

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

	public void execute() {
		Scanner sc = new Scanner(System.in);
		final int N = sc.nextInt();

		int[] rate = new int[N];
		int over = 0;
		int minColors = 0;
		int maxColors = 0;

		boolean[] c = new boolean[8];
		
		for (int i = 0; i < N; i++) {
			rate[i] = sc.nextInt();
			if(rate[i]>=3200) {
				over++;
			}
			else {
				c[(int)(rate[i]/400)] = true;
			}
		}

		for (boolean b: c) {
			if (b) {
				minColors++;
			}
		}
		
		maxColors = minColors + over;
		System.out.printf("%d %d\n", Math.max(minColors, 1), maxColors);
		sc.close();
	}

} Main public static void main(String[] args) {
		new Main().execute();
	} main {
		new Main().execute();
	} new Main().execute() new Main().execute new Main() String[] args args public void execute() {
		Scanner sc = new Scanner(System.in);
		final int N = sc.nextInt();

		int[] rate = new int[N];
		int over = 0;
		int minColors = 0;
		int maxColors = 0;

		boolean[] c = new boolean[8];
		
		for (int i = 0; i < N; i++) {
			rate[i] = sc.nextInt();
			if(rate[i]>=3200) {
				over++;
			}
			else {
				c[(int)(rate[i]/400)] = true;
			}
		}

		for (boolean b: c) {
			if (b) {
				minColors++;
			}
		}
		
		maxColors = minColors + over;
		System.out.printf("%d %d\n", Math.max(minColors, 1), maxColors);
		sc.close();
	} execute {
		Scanner sc = new Scanner(System.in);
		final int N = sc.nextInt();

		int[] rate = new int[N];
		int over = 0;
		int minColors = 0;
		int maxColors = 0;

		boolean[] c = new boolean[8];
		
		for (int i = 0; i < N; i++) {
			rate[i] = sc.nextInt();
			if(rate[i]>=3200) {
				over++;
			}
			else {
				c[(int)(rate[i]/400)] = true;
			}
		}

		for (boolean b: c) {
			if (b) {
				minColors++;
			}
		}
		
		maxColors = minColors + over;
		System.out.printf("%d %d\n", Math.max(minColors, 1), maxColors);
		sc.close();
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) final int N = sc.nextInt(); N sc.nextInt() sc.nextInt sc int[] rate = new int[N]; rate new int[N] N int over = 0; over 0 int minColors = 0; minColors 0 int maxColors = 0; maxColors 0 boolean[] c = new boolean[8]; c new boolean[8] 8 for (int i = 0; i < N; i++) {
			rate[i] = sc.nextInt();
			if(rate[i]>=3200) {
				over++;
			}
			else {
				c[(int)(rate[i]/400)] = true;
			}
		} int i = 0; int i = 0; i 0 i < N i N i++ i++ i {
			rate[i] = sc.nextInt();
			if(rate[i]>=3200) {
				over++;
			}
			else {
				c[(int)(rate[i]/400)] = true;
			}
		} {
			rate[i] = sc.nextInt();
			if(rate[i]>=3200) {
				over++;
			}
			else {
				c[(int)(rate[i]/400)] = true;
			}
		} rate[i] = sc.nextInt() rate[i] rate i sc.nextInt() sc.nextInt sc if(rate[i]>=3200) {
				over++;
			}
			else {
				c[(int)(rate[i]/400)] = true;
			} rate[i]>=3200 rate[i] rate i 3200 {
				over++;
			} over++ over {
				c[(int)(rate[i]/400)] = true;
			} c[(int)(rate[i]/400)] = true c[(int)(rate[i]/400)] c (int)(rate[i]/400) rate[i] rate i 400 true for (boolean b: c) {
			if (b) {
				minColors++;
			}
		} boolean b c {
			if (b) {
				minColors++;
			}
		} {
			if (b) {
				minColors++;
			}
		} if (b) {
				minColors++;
			} b {
				minColors++;
			} minColors++ minColors maxColors = minColors + over maxColors minColors + over minColors over System.out.printf("%d %d\n", Math.max(minColors, 1), maxColors) System.out.printf System.out System System.out "%d %d\n" Math.max(minColors, 1) Math.max Math minColors 1 maxColors sc.close() sc.close sc public class Main {

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

	public void execute() {
		Scanner sc = new Scanner(System.in);
		final int N = sc.nextInt();

		int[] rate = new int[N];
		int over = 0;
		int minColors = 0;
		int maxColors = 0;

		boolean[] c = new boolean[8];
		
		for (int i = 0; i < N; i++) {
			rate[i] = sc.nextInt();
			if(rate[i]>=3200) {
				over++;
			}
			else {
				c[(int)(rate[i]/400)] = true;
			}
		}

		for (boolean b: c) {
			if (b) {
				minColors++;
			}
		}
		
		maxColors = minColors + over;
		System.out.printf("%d %d\n", Math.max(minColors, 1), maxColors);
		sc.close();
	}

} public class Main {

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

	public void execute() {
		Scanner sc = new Scanner(System.in);
		final int N = sc.nextInt();

		int[] rate = new int[N];
		int over = 0;
		int minColors = 0;
		int maxColors = 0;

		boolean[] c = new boolean[8];
		
		for (int i = 0; i < N; i++) {
			rate[i] = sc.nextInt();
			if(rate[i]>=3200) {
				over++;
			}
			else {
				c[(int)(rate[i]/400)] = true;
			}
		}

		for (boolean b: c) {
			if (b) {
				minColors++;
			}
		}
		
		maxColors = minColors + over;
		System.out.printf("%d %d\n", Math.max(minColors, 1), maxColors);
		sc.close();
	}

} Main
import java.util.Arrays;
import java.util.Scanner;

public class Main {

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

	public void execute() {
		Scanner sc = new Scanner(System.in);
		final int N = sc.nextInt();

		int[] rate = new int[N];
		int over = 0;
		int minColors = 0;
		int maxColors = 0;

		boolean[] c = new boolean[8];
		
		for (int i = 0; i < N; i++) {
			rate[i] = sc.nextInt();
			if(rate[i]>=3200) {
				over++;
			}
			else {
				c[(int)(rate[i]/400)] = true;
			}
		}

		for (boolean b: c) {
			if (b) {
				minColors++;
			}
		}
		
		maxColors = minColors + over;
		System.out.printf("%d %d\n", Math.max(minColors, 1), maxColors);
		sc.close();
	}

}
