import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashSet;

class Main {
	public static void main(String args[]) throws IOException {
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		Solver solver = new Solver();
		solver.init();
		solver.readHead(in.readLine());
		for (; solver.hasNext();) {
			solver.readBody(in.readLine());
		}
	}
}

class Solver {
	int N;
	int cnt;

	public void init() {
		N = 0;
		cnt = 0;
	}

	public void readHead(String str) {
		String[] strArr = str.split(" ");
		N = Integer.parseInt(strArr[0]);
		// System.out.println(N);
	}

	public boolean hasNext() {
		return cnt < 1;
		// return cnt < N;
	}

	public void readBody(String str) {
		// System.out.println(str);
		String[] strArr = str.split(" ");
		HashSet<Integer> cols = new HashSet<Integer>();
		int master = 0;
		for (int i = 0; i < N; i++) {
			int a = Integer.parseInt(strArr[i]);
			int c = -1;
			// •レート 1-399：灰色
			if (a >= 1 && a <= 399)
				c = 1;
			// •レート 400-799：茶色
			if (a >= 400 && a <= 799)
				c = 2;
			// •レート 800-1199：緑色
			if (a >= 800 && a <= 1199)
				c = 3;
			// •レート 1200-1599：水色
			if (a >= 1200 && a <= 1599)
				c = 4;
			// •レート 1600-1999：青色
			if (a >= 1600 && a <= 1999)
				c = 5;
			// •レート 2000-2399：黄色
			if (a >= 2000 && a <= 2399)
				c = 6;
			// •レート 2400-2799：橙色
			if (a >= 2400 && a <= 2799)
				c = 7;
			// •レート 2800-3199：赤色
			if (a >= 2800 && a <= 3199)
				c = 8;
			if (a >= 3200)
				master++;
			if (c >= 1 && c <= 8)
				cols.add(c);
		}
		int min = cols.size();
		int max = cols.size();
		if (master > 0) {
			if (min == 0)
				min = 1;
			max += master;
			// if (max > 8)
			// max = 8;
		}
		System.out.println(min + " " + max);
		cnt++;
	}
} import java.io.BufferedReader; BufferedReader java.io import java.io.IOException; IOException java.io import java.io.InputStreamReader; InputStreamReader java.io import java.util.HashSet; HashSet java.util class Main {
	public static void main(String args[]) throws IOException {
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		Solver solver = new Solver();
		solver.init();
		solver.readHead(in.readLine());
		for (; solver.hasNext();) {
			solver.readBody(in.readLine());
		}
	}
} Main public static void main(String args[]) throws IOException {
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		Solver solver = new Solver();
		solver.init();
		solver.readHead(in.readLine());
		for (; solver.hasNext();) {
			solver.readBody(in.readLine());
		}
	} main {
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		Solver solver = new Solver();
		solver.init();
		solver.readHead(in.readLine());
		for (; solver.hasNext();) {
			solver.readBody(in.readLine());
		}
	} BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); in new BufferedReader(new InputStreamReader(System.in)) Solver solver = new Solver(); solver new Solver() solver.init() solver.init solver solver.readHead(in.readLine()) solver.readHead solver in.readLine() in.readLine in for (; solver.hasNext();) {
			solver.readBody(in.readLine());
		} ; solver.hasNext() solver.hasNext solver {
			solver.readBody(in.readLine());
		} {
			solver.readBody(in.readLine());
		} solver.readBody(in.readLine()) solver.readBody solver in.readLine() in.readLine in String args[] args class Solver {
	int N;
	int cnt;

	public void init() {
		N = 0;
		cnt = 0;
	}

	public void readHead(String str) {
		String[] strArr = str.split(" ");
		N = Integer.parseInt(strArr[0]);
		// System.out.println(N);
	}

	public boolean hasNext() {
		return cnt < 1;
		// return cnt < N;
	}

	public void readBody(String str) {
		// System.out.println(str);
		String[] strArr = str.split(" ");
		HashSet<Integer> cols = new HashSet<Integer>();
		int master = 0;
		for (int i = 0; i < N; i++) {
			int a = Integer.parseInt(strArr[i]);
			int c = -1;
			// •レート 1-399：灰色
			if (a >= 1 && a <= 399)
				c = 1;
			// •レート 400-799：茶色
			if (a >= 400 && a <= 799)
				c = 2;
			// •レート 800-1199：緑色
			if (a >= 800 && a <= 1199)
				c = 3;
			// •レート 1200-1599：水色
			if (a >= 1200 && a <= 1599)
				c = 4;
			// •レート 1600-1999：青色
			if (a >= 1600 && a <= 1999)
				c = 5;
			// •レート 2000-2399：黄色
			if (a >= 2000 && a <= 2399)
				c = 6;
			// •レート 2400-2799：橙色
			if (a >= 2400 && a <= 2799)
				c = 7;
			// •レート 2800-3199：赤色
			if (a >= 2800 && a <= 3199)
				c = 8;
			if (a >= 3200)
				master++;
			if (c >= 1 && c <= 8)
				cols.add(c);
		}
		int min = cols.size();
		int max = cols.size();
		if (master > 0) {
			if (min == 0)
				min = 1;
			max += master;
			// if (max > 8)
			// max = 8;
		}
		System.out.println(min + " " + max);
		cnt++;
	}
} Solver int N; N int cnt; cnt public void init() {
		N = 0;
		cnt = 0;
	} init {
		N = 0;
		cnt = 0;
	} N = 0 N 0 cnt = 0 cnt 0 public void readHead(String str) {
		String[] strArr = str.split(" ");
		N = Integer.parseInt(strArr[0]);
		// System.out.println(N);
	} readHead {
		String[] strArr = str.split(" ");
		N = Integer.parseInt(strArr[0]);
		// System.out.println(N);
	} String[] strArr = str.split(" "); strArr str.split(" ") str.split str " " N = Integer.parseInt(strArr[0]) N Integer.parseInt(strArr[0]) Integer.parseInt Integer strArr[0] strArr 0 String str str public boolean hasNext() {
		return cnt < 1;
		// return cnt < N;
	} hasNext {
		return cnt < 1;
		// return cnt < N;
	} return cnt < 1; cnt < 1 cnt 1 public void readBody(String str) {
		// System.out.println(str);
		String[] strArr = str.split(" ");
		HashSet<Integer> cols = new HashSet<Integer>();
		int master = 0;
		for (int i = 0; i < N; i++) {
			int a = Integer.parseInt(strArr[i]);
			int c = -1;
			// •レート 1-399：灰色
			if (a >= 1 && a <= 399)
				c = 1;
			// •レート 400-799：茶色
			if (a >= 400 && a <= 799)
				c = 2;
			// •レート 800-1199：緑色
			if (a >= 800 && a <= 1199)
				c = 3;
			// •レート 1200-1599：水色
			if (a >= 1200 && a <= 1599)
				c = 4;
			// •レート 1600-1999：青色
			if (a >= 1600 && a <= 1999)
				c = 5;
			// •レート 2000-2399：黄色
			if (a >= 2000 && a <= 2399)
				c = 6;
			// •レート 2400-2799：橙色
			if (a >= 2400 && a <= 2799)
				c = 7;
			// •レート 2800-3199：赤色
			if (a >= 2800 && a <= 3199)
				c = 8;
			if (a >= 3200)
				master++;
			if (c >= 1 && c <= 8)
				cols.add(c);
		}
		int min = cols.size();
		int max = cols.size();
		if (master > 0) {
			if (min == 0)
				min = 1;
			max += master;
			// if (max > 8)
			// max = 8;
		}
		System.out.println(min + " " + max);
		cnt++;
	} readBody {
		// System.out.println(str);
		String[] strArr = str.split(" ");
		HashSet<Integer> cols = new HashSet<Integer>();
		int master = 0;
		for (int i = 0; i < N; i++) {
			int a = Integer.parseInt(strArr[i]);
			int c = -1;
			// •レート 1-399：灰色
			if (a >= 1 && a <= 399)
				c = 1;
			// •レート 400-799：茶色
			if (a >= 400 && a <= 799)
				c = 2;
			// •レート 800-1199：緑色
			if (a >= 800 && a <= 1199)
				c = 3;
			// •レート 1200-1599：水色
			if (a >= 1200 && a <= 1599)
				c = 4;
			// •レート 1600-1999：青色
			if (a >= 1600 && a <= 1999)
				c = 5;
			// •レート 2000-2399：黄色
			if (a >= 2000 && a <= 2399)
				c = 6;
			// •レート 2400-2799：橙色
			if (a >= 2400 && a <= 2799)
				c = 7;
			// •レート 2800-3199：赤色
			if (a >= 2800 && a <= 3199)
				c = 8;
			if (a >= 3200)
				master++;
			if (c >= 1 && c <= 8)
				cols.add(c);
		}
		int min = cols.size();
		int max = cols.size();
		if (master > 0) {
			if (min == 0)
				min = 1;
			max += master;
			// if (max > 8)
			// max = 8;
		}
		System.out.println(min + " " + max);
		cnt++;
	} String[] strArr = str.split(" "); strArr str.split(" ") str.split str " " HashSet<Integer> cols = new HashSet<Integer>(); cols new HashSet<Integer>() int master = 0; master 0 for (int i = 0; i < N; i++) {
			int a = Integer.parseInt(strArr[i]);
			int c = -1;
			// •レート 1-399：灰色
			if (a >= 1 && a <= 399)
				c = 1;
			// •レート 400-799：茶色
			if (a >= 400 && a <= 799)
				c = 2;
			// •レート 800-1199：緑色
			if (a >= 800 && a <= 1199)
				c = 3;
			// •レート 1200-1599：水色
			if (a >= 1200 && a <= 1599)
				c = 4;
			// •レート 1600-1999：青色
			if (a >= 1600 && a <= 1999)
				c = 5;
			// •レート 2000-2399：黄色
			if (a >= 2000 && a <= 2399)
				c = 6;
			// •レート 2400-2799：橙色
			if (a >= 2400 && a <= 2799)
				c = 7;
			// •レート 2800-3199：赤色
			if (a >= 2800 && a <= 3199)
				c = 8;
			if (a >= 3200)
				master++;
			if (c >= 1 && c <= 8)
				cols.add(c);
		} int i = 0; int i = 0; i 0 i < N i N i++ i++ i {
			int a = Integer.parseInt(strArr[i]);
			int c = -1;
			// •レート 1-399：灰色
			if (a >= 1 && a <= 399)
				c = 1;
			// •レート 400-799：茶色
			if (a >= 400 && a <= 799)
				c = 2;
			// •レート 800-1199：緑色
			if (a >= 800 && a <= 1199)
				c = 3;
			// •レート 1200-1599：水色
			if (a >= 1200 && a <= 1599)
				c = 4;
			// •レート 1600-1999：青色
			if (a >= 1600 && a <= 1999)
				c = 5;
			// •レート 2000-2399：黄色
			if (a >= 2000 && a <= 2399)
				c = 6;
			// •レート 2400-2799：橙色
			if (a >= 2400 && a <= 2799)
				c = 7;
			// •レート 2800-3199：赤色
			if (a >= 2800 && a <= 3199)
				c = 8;
			if (a >= 3200)
				master++;
			if (c >= 1 && c <= 8)
				cols.add(c);
		} {
			int a = Integer.parseInt(strArr[i]);
			int c = -1;
			// •レート 1-399：灰色
			if (a >= 1 && a <= 399)
				c = 1;
			// •レート 400-799：茶色
			if (a >= 400 && a <= 799)
				c = 2;
			// •レート 800-1199：緑色
			if (a >= 800 && a <= 1199)
				c = 3;
			// •レート 1200-1599：水色
			if (a >= 1200 && a <= 1599)
				c = 4;
			// •レート 1600-1999：青色
			if (a >= 1600 && a <= 1999)
				c = 5;
			// •レート 2000-2399：黄色
			if (a >= 2000 && a <= 2399)
				c = 6;
			// •レート 2400-2799：橙色
			if (a >= 2400 && a <= 2799)
				c = 7;
			// •レート 2800-3199：赤色
			if (a >= 2800 && a <= 3199)
				c = 8;
			if (a >= 3200)
				master++;
			if (c >= 1 && c <= 8)
				cols.add(c);
		} int a = Integer.parseInt(strArr[i]); a Integer.parseInt(strArr[i]) Integer.parseInt Integer strArr[i] strArr i int c = -1; c -1 1 if (a >= 1 && a <= 399)
				c = 1; a >= 1 && a <= 399 a >= 1 a 1 a <= 399 a 399 c = 1 c 1 if (a >= 400 && a <= 799)
				c = 2; a >= 400 && a <= 799 a >= 400 a 400 a <= 799 a 799 c = 2 c 2 if (a >= 800 && a <= 1199)
				c = 3; a >= 800 && a <= 1199 a >= 800 a 800 a <= 1199 a 1199 c = 3 c 3 if (a >= 1200 && a <= 1599)
				c = 4; a >= 1200 && a <= 1599 a >= 1200 a 1200 a <= 1599 a 1599 c = 4 c 4 if (a >= 1600 && a <= 1999)
				c = 5; a >= 1600 && a <= 1999 a >= 1600 a 1600 a <= 1999 a 1999 c = 5 c 5 if (a >= 2000 && a <= 2399)
				c = 6; a >= 2000 && a <= 2399 a >= 2000 a 2000 a <= 2399 a 2399 c = 6 c 6 if (a >= 2400 && a <= 2799)
				c = 7; a >= 2400 && a <= 2799 a >= 2400 a 2400 a <= 2799 a 2799 c = 7 c 7 if (a >= 2800 && a <= 3199)
				c = 8; a >= 2800 && a <= 3199 a >= 2800 a 2800 a <= 3199 a 3199 c = 8 c 8 if (a >= 3200)
				master++; a >= 3200 a 3200 master++ master if (c >= 1 && c <= 8)
				cols.add(c); c >= 1 && c <= 8 c >= 1 c 1 c <= 8 c 8 cols.add(c) cols.add cols c int min = cols.size(); min cols.size() cols.size cols int max = cols.size(); max cols.size() cols.size cols if (master > 0) {
			if (min == 0)
				min = 1;
			max += master;
			// if (max > 8)
			// max = 8;
		} master > 0 master 0 {
			if (min == 0)
				min = 1;
			max += master;
			// if (max > 8)
			// max = 8;
		} if (min == 0)
				min = 1; min == 0 min 0 min = 1 min 1 max += master max master System.out.println(min + " " + max) System.out.println System.out System System.out min + " " + max min + " " + max min " " max cnt++ cnt String str str
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashSet;

class Main {
	public static void main(String args[]) throws IOException {
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		Solver solver = new Solver();
		solver.init();
		solver.readHead(in.readLine());
		for (; solver.hasNext();) {
			solver.readBody(in.readLine());
		}
	}
}

class Solver {
	int N;
	int cnt;

	public void init() {
		N = 0;
		cnt = 0;
	}

	public void readHead(String str) {
		String[] strArr = str.split(" ");
		N = Integer.parseInt(strArr[0]);
		// System.out.println(N);
	}

	public boolean hasNext() {
		return cnt < 1;
		// return cnt < N;
	}

	public void readBody(String str) {
		// System.out.println(str);
		String[] strArr = str.split(" ");
		HashSet<Integer> cols = new HashSet<Integer>();
		int master = 0;
		for (int i = 0; i < N; i++) {
			int a = Integer.parseInt(strArr[i]);
			int c = -1;
			// •レート 1-399：灰色
			if (a >= 1 && a <= 399)
				c = 1;
			// •レート 400-799：茶色
			if (a >= 400 && a <= 799)
				c = 2;
			// •レート 800-1199：緑色
			if (a >= 800 && a <= 1199)
				c = 3;
			// •レート 1200-1599：水色
			if (a >= 1200 && a <= 1599)
				c = 4;
			// •レート 1600-1999：青色
			if (a >= 1600 && a <= 1999)
				c = 5;
			// •レート 2000-2399：黄色
			if (a >= 2000 && a <= 2399)
				c = 6;
			// •レート 2400-2799：橙色
			if (a >= 2400 && a <= 2799)
				c = 7;
			// •レート 2800-3199：赤色
			if (a >= 2800 && a <= 3199)
				c = 8;
			if (a >= 3200)
				master++;
			if (c >= 1 && c <= 8)
				cols.add(c);
		}
		int min = cols.size();
		int max = cols.size();
		if (master > 0) {
			if (min == 0)
				min = 1;
			max += master;
			// if (max > 8)
			// max = 8;
		}
		System.out.println(min + " " + max);
		cnt++;
	}
}
