import java.io.*;
import java.util.*;

public class Main {
	public static void main(String[] args){
		Scanner in = new Scanner(System.in);
		int N = in.nextInt();
		boolean[] rate = new boolean[8];
		int free =0;
		int a;
		for(int i=0; i<N; i++){
			a  = in.nextInt();
			if(a<=399){
				rate[0]=true;
			}else if(a<=799){
				rate[1]=true;
			}else if(a<=1199){
				rate[2]=true;
			}else if(a<=1599){
				rate[3]=true;
			}else if(a<=1999){
				rate[4]=true;
			}else if(a<=2399){
				rate[5]=true;
			}else if(a<=2799){
				rate[6]=true;
			}else if(a<=3199){
				rate[7]=true;
			}else{
				free++;
			}
		}
		int ans=0;
		for(int i=0; i<rate.length; i++){
			if(rate[i]==true){
				ans++;
			}
		}
		int max = ans+free;
		if(ans == 0){
			ans = 1;
		}
		System.out.println(ans + " " + max);
	}
} import java.io.*; io.* java import java.util.*; util.* java public class Main {
	public static void main(String[] args){
		Scanner in = new Scanner(System.in);
		int N = in.nextInt();
		boolean[] rate = new boolean[8];
		int free =0;
		int a;
		for(int i=0; i<N; i++){
			a  = in.nextInt();
			if(a<=399){
				rate[0]=true;
			}else if(a<=799){
				rate[1]=true;
			}else if(a<=1199){
				rate[2]=true;
			}else if(a<=1599){
				rate[3]=true;
			}else if(a<=1999){
				rate[4]=true;
			}else if(a<=2399){
				rate[5]=true;
			}else if(a<=2799){
				rate[6]=true;
			}else if(a<=3199){
				rate[7]=true;
			}else{
				free++;
			}
		}
		int ans=0;
		for(int i=0; i<rate.length; i++){
			if(rate[i]==true){
				ans++;
			}
		}
		int max = ans+free;
		if(ans == 0){
			ans = 1;
		}
		System.out.println(ans + " " + max);
	}
} Main public static void main(String[] args){
		Scanner in = new Scanner(System.in);
		int N = in.nextInt();
		boolean[] rate = new boolean[8];
		int free =0;
		int a;
		for(int i=0; i<N; i++){
			a  = in.nextInt();
			if(a<=399){
				rate[0]=true;
			}else if(a<=799){
				rate[1]=true;
			}else if(a<=1199){
				rate[2]=true;
			}else if(a<=1599){
				rate[3]=true;
			}else if(a<=1999){
				rate[4]=true;
			}else if(a<=2399){
				rate[5]=true;
			}else if(a<=2799){
				rate[6]=true;
			}else if(a<=3199){
				rate[7]=true;
			}else{
				free++;
			}
		}
		int ans=0;
		for(int i=0; i<rate.length; i++){
			if(rate[i]==true){
				ans++;
			}
		}
		int max = ans+free;
		if(ans == 0){
			ans = 1;
		}
		System.out.println(ans + " " + max);
	} main {
		Scanner in = new Scanner(System.in);
		int N = in.nextInt();
		boolean[] rate = new boolean[8];
		int free =0;
		int a;
		for(int i=0; i<N; i++){
			a  = in.nextInt();
			if(a<=399){
				rate[0]=true;
			}else if(a<=799){
				rate[1]=true;
			}else if(a<=1199){
				rate[2]=true;
			}else if(a<=1599){
				rate[3]=true;
			}else if(a<=1999){
				rate[4]=true;
			}else if(a<=2399){
				rate[5]=true;
			}else if(a<=2799){
				rate[6]=true;
			}else if(a<=3199){
				rate[7]=true;
			}else{
				free++;
			}
		}
		int ans=0;
		for(int i=0; i<rate.length; i++){
			if(rate[i]==true){
				ans++;
			}
		}
		int max = ans+free;
		if(ans == 0){
			ans = 1;
		}
		System.out.println(ans + " " + max);
	} Scanner in = new Scanner(System.in); in new Scanner(System.in) int N = in.nextInt(); N in.nextInt() in.nextInt in boolean[] rate = new boolean[8]; rate new boolean[8] 8 int free =0; free 0 int a; a for(int i=0; i<N; i++){
			a  = in.nextInt();
			if(a<=399){
				rate[0]=true;
			}else if(a<=799){
				rate[1]=true;
			}else if(a<=1199){
				rate[2]=true;
			}else if(a<=1599){
				rate[3]=true;
			}else if(a<=1999){
				rate[4]=true;
			}else if(a<=2399){
				rate[5]=true;
			}else if(a<=2799){
				rate[6]=true;
			}else if(a<=3199){
				rate[7]=true;
			}else{
				free++;
			}
		} int i=0; int i=0; i 0 i<N i N i++ i++ i {
			a  = in.nextInt();
			if(a<=399){
				rate[0]=true;
			}else if(a<=799){
				rate[1]=true;
			}else if(a<=1199){
				rate[2]=true;
			}else if(a<=1599){
				rate[3]=true;
			}else if(a<=1999){
				rate[4]=true;
			}else if(a<=2399){
				rate[5]=true;
			}else if(a<=2799){
				rate[6]=true;
			}else if(a<=3199){
				rate[7]=true;
			}else{
				free++;
			}
		} {
			a  = in.nextInt();
			if(a<=399){
				rate[0]=true;
			}else if(a<=799){
				rate[1]=true;
			}else if(a<=1199){
				rate[2]=true;
			}else if(a<=1599){
				rate[3]=true;
			}else if(a<=1999){
				rate[4]=true;
			}else if(a<=2399){
				rate[5]=true;
			}else if(a<=2799){
				rate[6]=true;
			}else if(a<=3199){
				rate[7]=true;
			}else{
				free++;
			}
		} a  = in.nextInt() a in.nextInt() in.nextInt in if(a<=399){
				rate[0]=true;
			}else if(a<=799){
				rate[1]=true;
			}else if(a<=1199){
				rate[2]=true;
			}else if(a<=1599){
				rate[3]=true;
			}else if(a<=1999){
				rate[4]=true;
			}else if(a<=2399){
				rate[5]=true;
			}else if(a<=2799){
				rate[6]=true;
			}else if(a<=3199){
				rate[7]=true;
			}else{
				free++;
			} a<=399 a 399 {
				rate[0]=true;
			} rate[0]=true rate[0] rate 0 true if(a<=799){
				rate[1]=true;
			}else if(a<=1199){
				rate[2]=true;
			}else if(a<=1599){
				rate[3]=true;
			}else if(a<=1999){
				rate[4]=true;
			}else if(a<=2399){
				rate[5]=true;
			}else if(a<=2799){
				rate[6]=true;
			}else if(a<=3199){
				rate[7]=true;
			}else{
				free++;
			} a<=799 a 799 {
				rate[1]=true;
			} rate[1]=true rate[1] rate 1 true if(a<=1199){
				rate[2]=true;
			}else if(a<=1599){
				rate[3]=true;
			}else if(a<=1999){
				rate[4]=true;
			}else if(a<=2399){
				rate[5]=true;
			}else if(a<=2799){
				rate[6]=true;
			}else if(a<=3199){
				rate[7]=true;
			}else{
				free++;
			} a<=1199 a 1199 {
				rate[2]=true;
			} rate[2]=true rate[2] rate 2 true if(a<=1599){
				rate[3]=true;
			}else if(a<=1999){
				rate[4]=true;
			}else if(a<=2399){
				rate[5]=true;
			}else if(a<=2799){
				rate[6]=true;
			}else if(a<=3199){
				rate[7]=true;
			}else{
				free++;
			} a<=1599 a 1599 {
				rate[3]=true;
			} rate[3]=true rate[3] rate 3 true if(a<=1999){
				rate[4]=true;
			}else if(a<=2399){
				rate[5]=true;
			}else if(a<=2799){
				rate[6]=true;
			}else if(a<=3199){
				rate[7]=true;
			}else{
				free++;
			} a<=1999 a 1999 {
				rate[4]=true;
			} rate[4]=true rate[4] rate 4 true if(a<=2399){
				rate[5]=true;
			}else if(a<=2799){
				rate[6]=true;
			}else if(a<=3199){
				rate[7]=true;
			}else{
				free++;
			} a<=2399 a 2399 {
				rate[5]=true;
			} rate[5]=true rate[5] rate 5 true if(a<=2799){
				rate[6]=true;
			}else if(a<=3199){
				rate[7]=true;
			}else{
				free++;
			} a<=2799 a 2799 {
				rate[6]=true;
			} rate[6]=true rate[6] rate 6 true if(a<=3199){
				rate[7]=true;
			}else{
				free++;
			} a<=3199 a 3199 {
				rate[7]=true;
			} rate[7]=true rate[7] rate 7 true {
				free++;
			} free++ free int ans=0; ans 0 for(int i=0; i<rate.length; i++){
			if(rate[i]==true){
				ans++;
			}
		} int i=0; int i=0; i 0 i<rate.length i rate.length rate rate.length i++ i++ i {
			if(rate[i]==true){
				ans++;
			}
		} {
			if(rate[i]==true){
				ans++;
			}
		} if(rate[i]==true){
				ans++;
			} rate[i]==true rate[i] rate i true {
				ans++;
			} ans++ ans int max = ans+free; max ans+free ans free if(ans == 0){
			ans = 1;
		} ans == 0 ans 0 {
			ans = 1;
		} ans = 1 ans 1 System.out.println(ans + " " + max) System.out.println System.out System System.out ans + " " + max ans + " " + max ans " " max String[] args args public class Main {
	public static void main(String[] args){
		Scanner in = new Scanner(System.in);
		int N = in.nextInt();
		boolean[] rate = new boolean[8];
		int free =0;
		int a;
		for(int i=0; i<N; i++){
			a  = in.nextInt();
			if(a<=399){
				rate[0]=true;
			}else if(a<=799){
				rate[1]=true;
			}else if(a<=1199){
				rate[2]=true;
			}else if(a<=1599){
				rate[3]=true;
			}else if(a<=1999){
				rate[4]=true;
			}else if(a<=2399){
				rate[5]=true;
			}else if(a<=2799){
				rate[6]=true;
			}else if(a<=3199){
				rate[7]=true;
			}else{
				free++;
			}
		}
		int ans=0;
		for(int i=0; i<rate.length; i++){
			if(rate[i]==true){
				ans++;
			}
		}
		int max = ans+free;
		if(ans == 0){
			ans = 1;
		}
		System.out.println(ans + " " + max);
	}
} public class Main {
	public static void main(String[] args){
		Scanner in = new Scanner(System.in);
		int N = in.nextInt();
		boolean[] rate = new boolean[8];
		int free =0;
		int a;
		for(int i=0; i<N; i++){
			a  = in.nextInt();
			if(a<=399){
				rate[0]=true;
			}else if(a<=799){
				rate[1]=true;
			}else if(a<=1199){
				rate[2]=true;
			}else if(a<=1599){
				rate[3]=true;
			}else if(a<=1999){
				rate[4]=true;
			}else if(a<=2399){
				rate[5]=true;
			}else if(a<=2799){
				rate[6]=true;
			}else if(a<=3199){
				rate[7]=true;
			}else{
				free++;
			}
		}
		int ans=0;
		for(int i=0; i<rate.length; i++){
			if(rate[i]==true){
				ans++;
			}
		}
		int max = ans+free;
		if(ans == 0){
			ans = 1;
		}
		System.out.println(ans + " " + max);
	}
} Main
import java.io.*;
import java.util.*;

public class Main {
	public static void main(String[] args){
		Scanner in = new Scanner(System.in);
		int N = in.nextInt();
		boolean[] rate = new boolean[8];
		int free =0;
		int a;
		for(int i=0; i<N; i++){
			a  = in.nextInt();
			if(a<=399){
				rate[0]=true;
			}else if(a<=799){
				rate[1]=true;
			}else if(a<=1199){
				rate[2]=true;
			}else if(a<=1599){
				rate[3]=true;
			}else if(a<=1999){
				rate[4]=true;
			}else if(a<=2399){
				rate[5]=true;
			}else if(a<=2799){
				rate[6]=true;
			}else if(a<=3199){
				rate[7]=true;
			}else{
				free++;
			}
		}
		int ans=0;
		for(int i=0; i<rate.length; i++){
			if(rate[i]==true){
				ans++;
			}
		}
		int max = ans+free;
		if(ans == 0){
			ans = 1;
		}
		System.out.println(ans + " " + max);
	}
}