import java.util.*;

public class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        int[] A = new int[N];
        for (int i = 0; i < N; i++) {
            A[i] = sc.nextInt();
        }
        System.out.println( solve(N, A) );
    }

    private static String solve(int N, int[] A) {
        int[] colors = new int[9];
        int GRAY = 0;
        int TEA = 1;
        int GREEN = 2;
        int MIZU = 3;
        int BLUE = 4;
        int YELLOW = 5;
        int ORANGE = 6;
        int RED = 7;
        int OVER = 8;
        for (int i = 0; i < N; i++) {
            int a = A[i];

            if( a <= 399 ) colors[GRAY]++;
            else if( a <= 799 ) colors[TEA]++;
            else if( a <= 1199 ) colors[GREEN]++;
            else if( a <= 1599 ) colors[MIZU]++;
            else if( a <= 1999 ) colors[BLUE]++;
            else if( a <= 2399 ) colors[YELLOW]++;
            else if( a <= 2799 ) colors[ORANGE]++;
            else if( a <= 3199 ) colors[RED]++;
            else colors[OVER]++;
        }

        int minColor = 0;
        for (int c = GRAY; c <= RED; c++) {
            if( colors[c] != 0 ) {
                minColor ++;
            }
        }

        // OVERが何人いても同じ色を選べばよい
        int min = Math.max(minColor, 1);

        // overの人が全員異なる色を選ぶとよい
        int max = minColor + colors[OVER];

        return min + " " + max;
    }
} import java.util.*; util.* java public class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        int[] A = new int[N];
        for (int i = 0; i < N; i++) {
            A[i] = sc.nextInt();
        }
        System.out.println( solve(N, A) );
    }

    private static String solve(int N, int[] A) {
        int[] colors = new int[9];
        int GRAY = 0;
        int TEA = 1;
        int GREEN = 2;
        int MIZU = 3;
        int BLUE = 4;
        int YELLOW = 5;
        int ORANGE = 6;
        int RED = 7;
        int OVER = 8;
        for (int i = 0; i < N; i++) {
            int a = A[i];

            if( a <= 399 ) colors[GRAY]++;
            else if( a <= 799 ) colors[TEA]++;
            else if( a <= 1199 ) colors[GREEN]++;
            else if( a <= 1599 ) colors[MIZU]++;
            else if( a <= 1999 ) colors[BLUE]++;
            else if( a <= 2399 ) colors[YELLOW]++;
            else if( a <= 2799 ) colors[ORANGE]++;
            else if( a <= 3199 ) colors[RED]++;
            else colors[OVER]++;
        }

        int minColor = 0;
        for (int c = GRAY; c <= RED; c++) {
            if( colors[c] != 0 ) {
                minColor ++;
            }
        }

        // OVERが何人いても同じ色を選べばよい
        int min = Math.max(minColor, 1);

        // overの人が全員異なる色を選ぶとよい
        int max = minColor + colors[OVER];

        return min + " " + max;
    }
} Main public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        int[] A = new int[N];
        for (int i = 0; i < N; i++) {
            A[i] = sc.nextInt();
        }
        System.out.println( solve(N, A) );
    } main {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        int[] A = new int[N];
        for (int i = 0; i < N; i++) {
            A[i] = sc.nextInt();
        }
        System.out.println( solve(N, A) );
    } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int N = sc.nextInt(); N sc.nextInt() sc.nextInt sc int[] A = new int[N]; A new int[N] N for (int i = 0; i < N; i++) {
            A[i] = sc.nextInt();
        } int i = 0; int i = 0; i 0 i < N i N i++ i++ i {
            A[i] = sc.nextInt();
        } {
            A[i] = sc.nextInt();
        } A[i] = sc.nextInt() A[i] A i sc.nextInt() sc.nextInt sc System.out.println( solve(N, A) ) System.out.println System.out System System.out solve(N, A) solve N A String[] args args private static String solve(int N, int[] A) {
        int[] colors = new int[9];
        int GRAY = 0;
        int TEA = 1;
        int GREEN = 2;
        int MIZU = 3;
        int BLUE = 4;
        int YELLOW = 5;
        int ORANGE = 6;
        int RED = 7;
        int OVER = 8;
        for (int i = 0; i < N; i++) {
            int a = A[i];

            if( a <= 399 ) colors[GRAY]++;
            else if( a <= 799 ) colors[TEA]++;
            else if( a <= 1199 ) colors[GREEN]++;
            else if( a <= 1599 ) colors[MIZU]++;
            else if( a <= 1999 ) colors[BLUE]++;
            else if( a <= 2399 ) colors[YELLOW]++;
            else if( a <= 2799 ) colors[ORANGE]++;
            else if( a <= 3199 ) colors[RED]++;
            else colors[OVER]++;
        }

        int minColor = 0;
        for (int c = GRAY; c <= RED; c++) {
            if( colors[c] != 0 ) {
                minColor ++;
            }
        }

        // OVERが何人いても同じ色を選べばよい
        int min = Math.max(minColor, 1);

        // overの人が全員異なる色を選ぶとよい
        int max = minColor + colors[OVER];

        return min + " " + max;
    } solve {
        int[] colors = new int[9];
        int GRAY = 0;
        int TEA = 1;
        int GREEN = 2;
        int MIZU = 3;
        int BLUE = 4;
        int YELLOW = 5;
        int ORANGE = 6;
        int RED = 7;
        int OVER = 8;
        for (int i = 0; i < N; i++) {
            int a = A[i];

            if( a <= 399 ) colors[GRAY]++;
            else if( a <= 799 ) colors[TEA]++;
            else if( a <= 1199 ) colors[GREEN]++;
            else if( a <= 1599 ) colors[MIZU]++;
            else if( a <= 1999 ) colors[BLUE]++;
            else if( a <= 2399 ) colors[YELLOW]++;
            else if( a <= 2799 ) colors[ORANGE]++;
            else if( a <= 3199 ) colors[RED]++;
            else colors[OVER]++;
        }

        int minColor = 0;
        for (int c = GRAY; c <= RED; c++) {
            if( colors[c] != 0 ) {
                minColor ++;
            }
        }

        // OVERが何人いても同じ色を選べばよい
        int min = Math.max(minColor, 1);

        // overの人が全員異なる色を選ぶとよい
        int max = minColor + colors[OVER];

        return min + " " + max;
    } int[] colors = new int[9]; colors new int[9] 9 int GRAY = 0; GRAY 0 int TEA = 1; TEA 1 int GREEN = 2; GREEN 2 int MIZU = 3; MIZU 3 int BLUE = 4; BLUE 4 int YELLOW = 5; YELLOW 5 int ORANGE = 6; ORANGE 6 int RED = 7; RED 7 int OVER = 8; OVER 8 for (int i = 0; i < N; i++) {
            int a = A[i];

            if( a <= 399 ) colors[GRAY]++;
            else if( a <= 799 ) colors[TEA]++;
            else if( a <= 1199 ) colors[GREEN]++;
            else if( a <= 1599 ) colors[MIZU]++;
            else if( a <= 1999 ) colors[BLUE]++;
            else if( a <= 2399 ) colors[YELLOW]++;
            else if( a <= 2799 ) colors[ORANGE]++;
            else if( a <= 3199 ) colors[RED]++;
            else colors[OVER]++;
        } int i = 0; int i = 0; i 0 i < N i N i++ i++ i {
            int a = A[i];

            if( a <= 399 ) colors[GRAY]++;
            else if( a <= 799 ) colors[TEA]++;
            else if( a <= 1199 ) colors[GREEN]++;
            else if( a <= 1599 ) colors[MIZU]++;
            else if( a <= 1999 ) colors[BLUE]++;
            else if( a <= 2399 ) colors[YELLOW]++;
            else if( a <= 2799 ) colors[ORANGE]++;
            else if( a <= 3199 ) colors[RED]++;
            else colors[OVER]++;
        } {
            int a = A[i];

            if( a <= 399 ) colors[GRAY]++;
            else if( a <= 799 ) colors[TEA]++;
            else if( a <= 1199 ) colors[GREEN]++;
            else if( a <= 1599 ) colors[MIZU]++;
            else if( a <= 1999 ) colors[BLUE]++;
            else if( a <= 2399 ) colors[YELLOW]++;
            else if( a <= 2799 ) colors[ORANGE]++;
            else if( a <= 3199 ) colors[RED]++;
            else colors[OVER]++;
        } int a = A[i]; a A[i] A i if( a <= 399 ) colors[GRAY]++;
            else if( a <= 799 ) colors[TEA]++;
            else if( a <= 1199 ) colors[GREEN]++;
            else if( a <= 1599 ) colors[MIZU]++;
            else if( a <= 1999 ) colors[BLUE]++;
            else if( a <= 2399 ) colors[YELLOW]++;
            else if( a <= 2799 ) colors[ORANGE]++;
            else if( a <= 3199 ) colors[RED]++;
            else colors[OVER]++; a <= 399 a 399 colors[GRAY]++ colors[GRAY] colors GRAY if( a <= 799 ) colors[TEA]++;
            else if( a <= 1199 ) colors[GREEN]++;
            else if( a <= 1599 ) colors[MIZU]++;
            else if( a <= 1999 ) colors[BLUE]++;
            else if( a <= 2399 ) colors[YELLOW]++;
            else if( a <= 2799 ) colors[ORANGE]++;
            else if( a <= 3199 ) colors[RED]++;
            else colors[OVER]++; a <= 799 a 799 colors[TEA]++ colors[TEA] colors TEA if( a <= 1199 ) colors[GREEN]++;
            else if( a <= 1599 ) colors[MIZU]++;
            else if( a <= 1999 ) colors[BLUE]++;
            else if( a <= 2399 ) colors[YELLOW]++;
            else if( a <= 2799 ) colors[ORANGE]++;
            else if( a <= 3199 ) colors[RED]++;
            else colors[OVER]++; a <= 1199 a 1199 colors[GREEN]++ colors[GREEN] colors GREEN if( a <= 1599 ) colors[MIZU]++;
            else if( a <= 1999 ) colors[BLUE]++;
            else if( a <= 2399 ) colors[YELLOW]++;
            else if( a <= 2799 ) colors[ORANGE]++;
            else if( a <= 3199 ) colors[RED]++;
            else colors[OVER]++; a <= 1599 a 1599 colors[MIZU]++ colors[MIZU] colors MIZU if( a <= 1999 ) colors[BLUE]++;
            else if( a <= 2399 ) colors[YELLOW]++;
            else if( a <= 2799 ) colors[ORANGE]++;
            else if( a <= 3199 ) colors[RED]++;
            else colors[OVER]++; a <= 1999 a 1999 colors[BLUE]++ colors[BLUE] colors BLUE if( a <= 2399 ) colors[YELLOW]++;
            else if( a <= 2799 ) colors[ORANGE]++;
            else if( a <= 3199 ) colors[RED]++;
            else colors[OVER]++; a <= 2399 a 2399 colors[YELLOW]++ colors[YELLOW] colors YELLOW if( a <= 2799 ) colors[ORANGE]++;
            else if( a <= 3199 ) colors[RED]++;
            else colors[OVER]++; a <= 2799 a 2799 colors[ORANGE]++ colors[ORANGE] colors ORANGE if( a <= 3199 ) colors[RED]++;
            else colors[OVER]++; a <= 3199 a 3199 colors[RED]++ colors[RED] colors RED colors[OVER]++ colors[OVER] colors OVER int minColor = 0; minColor 0 for (int c = GRAY; c <= RED; c++) {
            if( colors[c] != 0 ) {
                minColor ++;
            }
        } int c = GRAY; int c = GRAY; c GRAY c <= RED c RED c++ c++ c {
            if( colors[c] != 0 ) {
                minColor ++;
            }
        } {
            if( colors[c] != 0 ) {
                minColor ++;
            }
        } if( colors[c] != 0 ) {
                minColor ++;
            } colors[c] != 0 colors[c] colors c 0 {
                minColor ++;
            } minColor ++ minColor int min = Math.max(minColor, 1); min Math.max(minColor, 1) Math.max Math minColor 1 int max = minColor + colors[OVER]; max minColor + colors[OVER] minColor colors[OVER] colors OVER return min + " " + max; min + " " + max min + " " + max min " " max int N N int[] A A public class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        int[] A = new int[N];
        for (int i = 0; i < N; i++) {
            A[i] = sc.nextInt();
        }
        System.out.println( solve(N, A) );
    }

    private static String solve(int N, int[] A) {
        int[] colors = new int[9];
        int GRAY = 0;
        int TEA = 1;
        int GREEN = 2;
        int MIZU = 3;
        int BLUE = 4;
        int YELLOW = 5;
        int ORANGE = 6;
        int RED = 7;
        int OVER = 8;
        for (int i = 0; i < N; i++) {
            int a = A[i];

            if( a <= 399 ) colors[GRAY]++;
            else if( a <= 799 ) colors[TEA]++;
            else if( a <= 1199 ) colors[GREEN]++;
            else if( a <= 1599 ) colors[MIZU]++;
            else if( a <= 1999 ) colors[BLUE]++;
            else if( a <= 2399 ) colors[YELLOW]++;
            else if( a <= 2799 ) colors[ORANGE]++;
            else if( a <= 3199 ) colors[RED]++;
            else colors[OVER]++;
        }

        int minColor = 0;
        for (int c = GRAY; c <= RED; c++) {
            if( colors[c] != 0 ) {
                minColor ++;
            }
        }

        // OVERが何人いても同じ色を選べばよい
        int min = Math.max(minColor, 1);

        // overの人が全員異なる色を選ぶとよい
        int max = minColor + colors[OVER];

        return min + " " + max;
    }
} public class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        int[] A = new int[N];
        for (int i = 0; i < N; i++) {
            A[i] = sc.nextInt();
        }
        System.out.println( solve(N, A) );
    }

    private static String solve(int N, int[] A) {
        int[] colors = new int[9];
        int GRAY = 0;
        int TEA = 1;
        int GREEN = 2;
        int MIZU = 3;
        int BLUE = 4;
        int YELLOW = 5;
        int ORANGE = 6;
        int RED = 7;
        int OVER = 8;
        for (int i = 0; i < N; i++) {
            int a = A[i];

            if( a <= 399 ) colors[GRAY]++;
            else if( a <= 799 ) colors[TEA]++;
            else if( a <= 1199 ) colors[GREEN]++;
            else if( a <= 1599 ) colors[MIZU]++;
            else if( a <= 1999 ) colors[BLUE]++;
            else if( a <= 2399 ) colors[YELLOW]++;
            else if( a <= 2799 ) colors[ORANGE]++;
            else if( a <= 3199 ) colors[RED]++;
            else colors[OVER]++;
        }

        int minColor = 0;
        for (int c = GRAY; c <= RED; c++) {
            if( colors[c] != 0 ) {
                minColor ++;
            }
        }

        // OVERが何人いても同じ色を選べばよい
        int min = Math.max(minColor, 1);

        // overの人が全員異なる色を選ぶとよい
        int max = minColor + colors[OVER];

        return min + " " + max;
    }
} Main
import java.util.*;

public class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        int[] A = new int[N];
        for (int i = 0; i < N; i++) {
            A[i] = sc.nextInt();
        }
        System.out.println( solve(N, A) );
    }

    private static String solve(int N, int[] A) {
        int[] colors = new int[9];
        int GRAY = 0;
        int TEA = 1;
        int GREEN = 2;
        int MIZU = 3;
        int BLUE = 4;
        int YELLOW = 5;
        int ORANGE = 6;
        int RED = 7;
        int OVER = 8;
        for (int i = 0; i < N; i++) {
            int a = A[i];

            if( a <= 399 ) colors[GRAY]++;
            else if( a <= 799 ) colors[TEA]++;
            else if( a <= 1199 ) colors[GREEN]++;
            else if( a <= 1599 ) colors[MIZU]++;
            else if( a <= 1999 ) colors[BLUE]++;
            else if( a <= 2399 ) colors[YELLOW]++;
            else if( a <= 2799 ) colors[ORANGE]++;
            else if( a <= 3199 ) colors[RED]++;
            else colors[OVER]++;
        }

        int minColor = 0;
        for (int c = GRAY; c <= RED; c++) {
            if( colors[c] != 0 ) {
                minColor ++;
            }
        }

        // OVERが何人いても同じ色を選べばよい
        int min = Math.max(minColor, 1);

        // overの人が全員異なる色を選ぶとよい
        int max = minColor + colors[OVER];

        return min + " " + max;
    }
}
