import java.util.Scanner;

public class Main{
	public static void main(String[] args){
		Scanner scan = new Scanner(System.in);
		int n = Integer.parseInt(scan.next());
		int[] a = new int[n];
		int wildCount = 0;
		for(int i=0;i<n;i++){
			a[i] = Integer.parseInt(scan.next());
			if(a[i]>=3200)wildCount++;
		}
		int min,sum = 0;
		for(int j=0;j<8;j++){//jは色
			if(check(a,j))sum ++;
		}
		//最小値
		if(sum==0){
			min = 1;
		}else{
			min = sum;
		}
		//最大値
		int max = sum;
		max += wildCount;


		System.out.println(min+" "+max);


	}

	static boolean check(int[] a,int b){
		for(int i=0;i<a.length;i++){
			if(400*b<=a[i] && a[i]<400*(b+1)){
				return true;
			}
		}
		return false;
	}
} import java.util.Scanner; Scanner java.util public class Main{
	public static void main(String[] args){
		Scanner scan = new Scanner(System.in);
		int n = Integer.parseInt(scan.next());
		int[] a = new int[n];
		int wildCount = 0;
		for(int i=0;i<n;i++){
			a[i] = Integer.parseInt(scan.next());
			if(a[i]>=3200)wildCount++;
		}
		int min,sum = 0;
		for(int j=0;j<8;j++){//jは色
			if(check(a,j))sum ++;
		}
		//最小値
		if(sum==0){
			min = 1;
		}else{
			min = sum;
		}
		//最大値
		int max = sum;
		max += wildCount;


		System.out.println(min+" "+max);


	}

	static boolean check(int[] a,int b){
		for(int i=0;i<a.length;i++){
			if(400*b<=a[i] && a[i]<400*(b+1)){
				return true;
			}
		}
		return false;
	}
} Main public static void main(String[] args){
		Scanner scan = new Scanner(System.in);
		int n = Integer.parseInt(scan.next());
		int[] a = new int[n];
		int wildCount = 0;
		for(int i=0;i<n;i++){
			a[i] = Integer.parseInt(scan.next());
			if(a[i]>=3200)wildCount++;
		}
		int min,sum = 0;
		for(int j=0;j<8;j++){//jは色
			if(check(a,j))sum ++;
		}
		//最小値
		if(sum==0){
			min = 1;
		}else{
			min = sum;
		}
		//最大値
		int max = sum;
		max += wildCount;


		System.out.println(min+" "+max);


	} main {
		Scanner scan = new Scanner(System.in);
		int n = Integer.parseInt(scan.next());
		int[] a = new int[n];
		int wildCount = 0;
		for(int i=0;i<n;i++){
			a[i] = Integer.parseInt(scan.next());
			if(a[i]>=3200)wildCount++;
		}
		int min,sum = 0;
		for(int j=0;j<8;j++){//jは色
			if(check(a,j))sum ++;
		}
		//最小値
		if(sum==0){
			min = 1;
		}else{
			min = sum;
		}
		//最大値
		int max = sum;
		max += wildCount;


		System.out.println(min+" "+max);


	} Scanner scan = new Scanner(System.in); scan new Scanner(System.in) int n = Integer.parseInt(scan.next()); n Integer.parseInt(scan.next()) Integer.parseInt Integer scan.next() scan.next scan int[] a = new int[n]; a new int[n] n int wildCount = 0; wildCount 0 for(int i=0;i<n;i++){
			a[i] = Integer.parseInt(scan.next());
			if(a[i]>=3200)wildCount++;
		} int i=0; int i=0; i 0 i<n i n i++ i++ i {
			a[i] = Integer.parseInt(scan.next());
			if(a[i]>=3200)wildCount++;
		} {
			a[i] = Integer.parseInt(scan.next());
			if(a[i]>=3200)wildCount++;
		} a[i] = Integer.parseInt(scan.next()) a[i] a i Integer.parseInt(scan.next()) Integer.parseInt Integer scan.next() scan.next scan if(a[i]>=3200)wildCount++; a[i]>=3200 a[i] a i 3200 wildCount++ wildCount int min min sum = 0; sum 0 for(int j=0;j<8;j++){//jは色
			if(check(a,j))sum ++;
		} int j=0; int j=0; j 0 j<8 j 8 j++ j++ j {//jは色
			if(check(a,j))sum ++;
		} {//jは色
			if(check(a,j))sum ++;
		} if(check(a,j))sum ++; check(a,j) check a j sum ++ sum if(sum==0){
			min = 1;
		}else{
			min = sum;
		} sum==0 sum 0 {
			min = 1;
		} min = 1 min 1 {
			min = sum;
		} min = sum min sum int max = sum; max sum max += wildCount max wildCount System.out.println(min+" "+max) System.out.println System.out System System.out min+" "+max min+" "+max min " " max String[] args args static boolean check(int[] a,int b){
		for(int i=0;i<a.length;i++){
			if(400*b<=a[i] && a[i]<400*(b+1)){
				return true;
			}
		}
		return false;
	} check {
		for(int i=0;i<a.length;i++){
			if(400*b<=a[i] && a[i]<400*(b+1)){
				return true;
			}
		}
		return false;
	} for(int i=0;i<a.length;i++){
			if(400*b<=a[i] && a[i]<400*(b+1)){
				return true;
			}
		} int i=0; int i=0; i 0 i<a.length i a.length a a.length i++ i++ i {
			if(400*b<=a[i] && a[i]<400*(b+1)){
				return true;
			}
		} {
			if(400*b<=a[i] && a[i]<400*(b+1)){
				return true;
			}
		} if(400*b<=a[i] && a[i]<400*(b+1)){
				return true;
			} 400*b<=a[i] && a[i]<400*(b+1) 400*b<=a[i] 400*b 400 b a[i] a i a[i]<400*(b+1) a[i] a i 400*(b+1) 400 (b+1) b 1 {
				return true;
			} return true; true return false; false int[] a a int b b public class Main{
	public static void main(String[] args){
		Scanner scan = new Scanner(System.in);
		int n = Integer.parseInt(scan.next());
		int[] a = new int[n];
		int wildCount = 0;
		for(int i=0;i<n;i++){
			a[i] = Integer.parseInt(scan.next());
			if(a[i]>=3200)wildCount++;
		}
		int min,sum = 0;
		for(int j=0;j<8;j++){//jは色
			if(check(a,j))sum ++;
		}
		//最小値
		if(sum==0){
			min = 1;
		}else{
			min = sum;
		}
		//最大値
		int max = sum;
		max += wildCount;


		System.out.println(min+" "+max);


	}

	static boolean check(int[] a,int b){
		for(int i=0;i<a.length;i++){
			if(400*b<=a[i] && a[i]<400*(b+1)){
				return true;
			}
		}
		return false;
	}
} public class Main{
	public static void main(String[] args){
		Scanner scan = new Scanner(System.in);
		int n = Integer.parseInt(scan.next());
		int[] a = new int[n];
		int wildCount = 0;
		for(int i=0;i<n;i++){
			a[i] = Integer.parseInt(scan.next());
			if(a[i]>=3200)wildCount++;
		}
		int min,sum = 0;
		for(int j=0;j<8;j++){//jは色
			if(check(a,j))sum ++;
		}
		//最小値
		if(sum==0){
			min = 1;
		}else{
			min = sum;
		}
		//最大値
		int max = sum;
		max += wildCount;


		System.out.println(min+" "+max);


	}

	static boolean check(int[] a,int b){
		for(int i=0;i<a.length;i++){
			if(400*b<=a[i] && a[i]<400*(b+1)){
				return true;
			}
		}
		return false;
	}
} Main
import java.util.Scanner;

public class Main{
	public static void main(String[] args){
		Scanner scan = new Scanner(System.in);
		int n = Integer.parseInt(scan.next());
		int[] a = new int[n];
		int wildCount = 0;
		for(int i=0;i<n;i++){
			a[i] = Integer.parseInt(scan.next());
			if(a[i]>=3200)wildCount++;
		}
		int min,sum = 0;
		for(int j=0;j<8;j++){//jは色
			if(check(a,j))sum ++;
		}
		//最小値
		if(sum==0){
			min = 1;
		}else{
			min = sum;
		}
		//最大値
		int max = sum;
		max += wildCount;


		System.out.println(min+" "+max);


	}

	static boolean check(int[] a,int b){
		for(int i=0;i<a.length;i++){
			if(400*b<=a[i] && a[i]<400*(b+1)){
				return true;
			}
		}
		return false;
	}
}
