import java.util.*;

public class Main {
	
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		
		Set<Integer> set = new HashSet<>();
		int topCount = 0;
		for (int i = 0; i < N; i++) {
			int rate = sc.nextInt();
			int rank = classifiy(rate);
			if (rank == 9) {
				topCount++;
				continue;
			}
			
			set.add(rank);
		}
		
		int min = Math.max(set.size(), 1);
		int max = set.size() + topCount;
		System.out.println(min + " " + max);
		
	}
	
	static int classifiy(int rate) {
		if (rate < 400) {
			return 1;
		} else if (rate < 800) {
			return 2;
		} else if (rate < 1200) {
			return 3;
		} else if (rate < 1600) {
			return 4;
		} else if (rate < 2000) {
			return 5;
		} else if (rate < 2400) {
			return 6;
		} else if (rate < 2800) {
			return 7;
		} else if (rate < 3200) {
			return 8;
		} else {
			return 9;
		}
	}

} import java.util.*; util.* java public class Main {
	
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		
		Set<Integer> set = new HashSet<>();
		int topCount = 0;
		for (int i = 0; i < N; i++) {
			int rate = sc.nextInt();
			int rank = classifiy(rate);
			if (rank == 9) {
				topCount++;
				continue;
			}
			
			set.add(rank);
		}
		
		int min = Math.max(set.size(), 1);
		int max = set.size() + topCount;
		System.out.println(min + " " + max);
		
	}
	
	static int classifiy(int rate) {
		if (rate < 400) {
			return 1;
		} else if (rate < 800) {
			return 2;
		} else if (rate < 1200) {
			return 3;
		} else if (rate < 1600) {
			return 4;
		} else if (rate < 2000) {
			return 5;
		} else if (rate < 2400) {
			return 6;
		} else if (rate < 2800) {
			return 7;
		} else if (rate < 3200) {
			return 8;
		} else {
			return 9;
		}
	}

} Main public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		
		Set<Integer> set = new HashSet<>();
		int topCount = 0;
		for (int i = 0; i < N; i++) {
			int rate = sc.nextInt();
			int rank = classifiy(rate);
			if (rank == 9) {
				topCount++;
				continue;
			}
			
			set.add(rank);
		}
		
		int min = Math.max(set.size(), 1);
		int max = set.size() + topCount;
		System.out.println(min + " " + max);
		
	} main {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		
		Set<Integer> set = new HashSet<>();
		int topCount = 0;
		for (int i = 0; i < N; i++) {
			int rate = sc.nextInt();
			int rank = classifiy(rate);
			if (rank == 9) {
				topCount++;
				continue;
			}
			
			set.add(rank);
		}
		
		int min = Math.max(set.size(), 1);
		int max = set.size() + topCount;
		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 Set<Integer> set = new HashSet<>(); set new HashSet<>() int topCount = 0; topCount 0 for (int i = 0; i < N; i++) {
			int rate = sc.nextInt();
			int rank = classifiy(rate);
			if (rank == 9) {
				topCount++;
				continue;
			}
			
			set.add(rank);
		} int i = 0; int i = 0; i 0 i < N i N i++ i++ i {
			int rate = sc.nextInt();
			int rank = classifiy(rate);
			if (rank == 9) {
				topCount++;
				continue;
			}
			
			set.add(rank);
		} {
			int rate = sc.nextInt();
			int rank = classifiy(rate);
			if (rank == 9) {
				topCount++;
				continue;
			}
			
			set.add(rank);
		} int rate = sc.nextInt(); rate sc.nextInt() sc.nextInt sc int rank = classifiy(rate); rank classifiy(rate) classifiy rate if (rank == 9) {
				topCount++;
				continue;
			} rank == 9 rank 9 {
				topCount++;
				continue;
			} topCount++ topCount continue; set.add(rank) set.add set rank int min = Math.max(set.size(), 1); min Math.max(set.size(), 1) Math.max Math set.size() set.size set 1 int max = set.size() + topCount; max set.size() + topCount set.size() set.size set topCount System.out.println(min + " " + max) System.out.println System.out System System.out min + " " + max min + " " + max min " " max String[] args args static int classifiy(int rate) {
		if (rate < 400) {
			return 1;
		} else if (rate < 800) {
			return 2;
		} else if (rate < 1200) {
			return 3;
		} else if (rate < 1600) {
			return 4;
		} else if (rate < 2000) {
			return 5;
		} else if (rate < 2400) {
			return 6;
		} else if (rate < 2800) {
			return 7;
		} else if (rate < 3200) {
			return 8;
		} else {
			return 9;
		}
	} classifiy {
		if (rate < 400) {
			return 1;
		} else if (rate < 800) {
			return 2;
		} else if (rate < 1200) {
			return 3;
		} else if (rate < 1600) {
			return 4;
		} else if (rate < 2000) {
			return 5;
		} else if (rate < 2400) {
			return 6;
		} else if (rate < 2800) {
			return 7;
		} else if (rate < 3200) {
			return 8;
		} else {
			return 9;
		}
	} if (rate < 400) {
			return 1;
		} else if (rate < 800) {
			return 2;
		} else if (rate < 1200) {
			return 3;
		} else if (rate < 1600) {
			return 4;
		} else if (rate < 2000) {
			return 5;
		} else if (rate < 2400) {
			return 6;
		} else if (rate < 2800) {
			return 7;
		} else if (rate < 3200) {
			return 8;
		} else {
			return 9;
		} rate < 400 rate 400 {
			return 1;
		} return 1; 1 if (rate < 800) {
			return 2;
		} else if (rate < 1200) {
			return 3;
		} else if (rate < 1600) {
			return 4;
		} else if (rate < 2000) {
			return 5;
		} else if (rate < 2400) {
			return 6;
		} else if (rate < 2800) {
			return 7;
		} else if (rate < 3200) {
			return 8;
		} else {
			return 9;
		} rate < 800 rate 800 {
			return 2;
		} return 2; 2 if (rate < 1200) {
			return 3;
		} else if (rate < 1600) {
			return 4;
		} else if (rate < 2000) {
			return 5;
		} else if (rate < 2400) {
			return 6;
		} else if (rate < 2800) {
			return 7;
		} else if (rate < 3200) {
			return 8;
		} else {
			return 9;
		} rate < 1200 rate 1200 {
			return 3;
		} return 3; 3 if (rate < 1600) {
			return 4;
		} else if (rate < 2000) {
			return 5;
		} else if (rate < 2400) {
			return 6;
		} else if (rate < 2800) {
			return 7;
		} else if (rate < 3200) {
			return 8;
		} else {
			return 9;
		} rate < 1600 rate 1600 {
			return 4;
		} return 4; 4 if (rate < 2000) {
			return 5;
		} else if (rate < 2400) {
			return 6;
		} else if (rate < 2800) {
			return 7;
		} else if (rate < 3200) {
			return 8;
		} else {
			return 9;
		} rate < 2000 rate 2000 {
			return 5;
		} return 5; 5 if (rate < 2400) {
			return 6;
		} else if (rate < 2800) {
			return 7;
		} else if (rate < 3200) {
			return 8;
		} else {
			return 9;
		} rate < 2400 rate 2400 {
			return 6;
		} return 6; 6 if (rate < 2800) {
			return 7;
		} else if (rate < 3200) {
			return 8;
		} else {
			return 9;
		} rate < 2800 rate 2800 {
			return 7;
		} return 7; 7 if (rate < 3200) {
			return 8;
		} else {
			return 9;
		} rate < 3200 rate 3200 {
			return 8;
		} return 8; 8 {
			return 9;
		} return 9; 9 int rate rate public class Main {
	
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		
		Set<Integer> set = new HashSet<>();
		int topCount = 0;
		for (int i = 0; i < N; i++) {
			int rate = sc.nextInt();
			int rank = classifiy(rate);
			if (rank == 9) {
				topCount++;
				continue;
			}
			
			set.add(rank);
		}
		
		int min = Math.max(set.size(), 1);
		int max = set.size() + topCount;
		System.out.println(min + " " + max);
		
	}
	
	static int classifiy(int rate) {
		if (rate < 400) {
			return 1;
		} else if (rate < 800) {
			return 2;
		} else if (rate < 1200) {
			return 3;
		} else if (rate < 1600) {
			return 4;
		} else if (rate < 2000) {
			return 5;
		} else if (rate < 2400) {
			return 6;
		} else if (rate < 2800) {
			return 7;
		} else if (rate < 3200) {
			return 8;
		} else {
			return 9;
		}
	}

} public class Main {
	
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		
		Set<Integer> set = new HashSet<>();
		int topCount = 0;
		for (int i = 0; i < N; i++) {
			int rate = sc.nextInt();
			int rank = classifiy(rate);
			if (rank == 9) {
				topCount++;
				continue;
			}
			
			set.add(rank);
		}
		
		int min = Math.max(set.size(), 1);
		int max = set.size() + topCount;
		System.out.println(min + " " + max);
		
	}
	
	static int classifiy(int rate) {
		if (rate < 400) {
			return 1;
		} else if (rate < 800) {
			return 2;
		} else if (rate < 1200) {
			return 3;
		} else if (rate < 1600) {
			return 4;
		} else if (rate < 2000) {
			return 5;
		} else if (rate < 2400) {
			return 6;
		} else if (rate < 2800) {
			return 7;
		} else if (rate < 3200) {
			return 8;
		} else {
			return 9;
		}
	}

} Main
import java.util.*;

public class Main {
	
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		
		Set<Integer> set = new HashSet<>();
		int topCount = 0;
		for (int i = 0; i < N; i++) {
			int rate = sc.nextInt();
			int rank = classifiy(rate);
			if (rank == 9) {
				topCount++;
				continue;
			}
			
			set.add(rank);
		}
		
		int min = Math.max(set.size(), 1);
		int max = set.size() + topCount;
		System.out.println(min + " " + max);
		
	}
	
	static int classifiy(int rate) {
		if (rate < 400) {
			return 1;
		} else if (rate < 800) {
			return 2;
		} else if (rate < 1200) {
			return 3;
		} else if (rate < 1600) {
			return 4;
		} else if (rate < 2000) {
			return 5;
		} else if (rate < 2400) {
			return 6;
		} else if (rate < 2800) {
			return 7;
		} else if (rate < 3200) {
			return 8;
		} else {
			return 9;
		}
	}

}