import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(new BufferedReader(new InputStreamReader(System.in)));
        int N = scan.nextInt();
        int[] a = new int[N];
        int[] color = new int[8];
        int legend = 0;
        for (int i = 0; i < N; i++) {
            a[i] = scan.nextInt();
            int index = color(a[i]);
            if (index != -1) {
                color[index] += 1;
            } else {
                legend += 1;
            }
        }
        int minimum = 0;
        for (int i = 0; i < 8; i++) {
            if (0 < color[i]) {
                minimum += 1;
            }
        }
        if (minimum == 0) {
            System.out.println(1 + " " + (minimum + legend));
        } else {
            System.out.println(minimum + " " + (minimum + legend));
        }
    }
    private static int color(int score) {
        if (score < 400) {
            return 0;
        }
        if (score < 800) {
            return 1;
        }
        if (score < 1200) {
            return 2;
        }
        if (score < 1600) {
            return 3;
        }
        if (score < 2000) {
            return 4;
        }
        if (score < 2400) {
            return 5;
        }
        if (score < 2800) {
            return 6;
        }
        if (score < 3200) {
            return 7;
        }
        return -1;
    }
} import java.io.BufferedReader; BufferedReader java.io import java.io.InputStreamReader; InputStreamReader java.io import java.util.Arrays; Arrays java.util import java.util.Scanner; Scanner java.util public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(new BufferedReader(new InputStreamReader(System.in)));
        int N = scan.nextInt();
        int[] a = new int[N];
        int[] color = new int[8];
        int legend = 0;
        for (int i = 0; i < N; i++) {
            a[i] = scan.nextInt();
            int index = color(a[i]);
            if (index != -1) {
                color[index] += 1;
            } else {
                legend += 1;
            }
        }
        int minimum = 0;
        for (int i = 0; i < 8; i++) {
            if (0 < color[i]) {
                minimum += 1;
            }
        }
        if (minimum == 0) {
            System.out.println(1 + " " + (minimum + legend));
        } else {
            System.out.println(minimum + " " + (minimum + legend));
        }
    }
    private static int color(int score) {
        if (score < 400) {
            return 0;
        }
        if (score < 800) {
            return 1;
        }
        if (score < 1200) {
            return 2;
        }
        if (score < 1600) {
            return 3;
        }
        if (score < 2000) {
            return 4;
        }
        if (score < 2400) {
            return 5;
        }
        if (score < 2800) {
            return 6;
        }
        if (score < 3200) {
            return 7;
        }
        return -1;
    }
} Main public static void main(String[] args) {
        Scanner scan = new Scanner(new BufferedReader(new InputStreamReader(System.in)));
        int N = scan.nextInt();
        int[] a = new int[N];
        int[] color = new int[8];
        int legend = 0;
        for (int i = 0; i < N; i++) {
            a[i] = scan.nextInt();
            int index = color(a[i]);
            if (index != -1) {
                color[index] += 1;
            } else {
                legend += 1;
            }
        }
        int minimum = 0;
        for (int i = 0; i < 8; i++) {
            if (0 < color[i]) {
                minimum += 1;
            }
        }
        if (minimum == 0) {
            System.out.println(1 + " " + (minimum + legend));
        } else {
            System.out.println(minimum + " " + (minimum + legend));
        }
    } main {
        Scanner scan = new Scanner(new BufferedReader(new InputStreamReader(System.in)));
        int N = scan.nextInt();
        int[] a = new int[N];
        int[] color = new int[8];
        int legend = 0;
        for (int i = 0; i < N; i++) {
            a[i] = scan.nextInt();
            int index = color(a[i]);
            if (index != -1) {
                color[index] += 1;
            } else {
                legend += 1;
            }
        }
        int minimum = 0;
        for (int i = 0; i < 8; i++) {
            if (0 < color[i]) {
                minimum += 1;
            }
        }
        if (minimum == 0) {
            System.out.println(1 + " " + (minimum + legend));
        } else {
            System.out.println(minimum + " " + (minimum + legend));
        }
    } Scanner scan = new Scanner(new BufferedReader(new InputStreamReader(System.in))); scan new Scanner(new BufferedReader(new InputStreamReader(System.in))) int N = scan.nextInt(); N scan.nextInt() scan.nextInt scan int[] a = new int[N]; a new int[N] N int[] color = new int[8]; color new int[8] 8 int legend = 0; legend 0 for (int i = 0; i < N; i++) {
            a[i] = scan.nextInt();
            int index = color(a[i]);
            if (index != -1) {
                color[index] += 1;
            } else {
                legend += 1;
            }
        } int i = 0; int i = 0; i 0 i < N i N i++ i++ i {
            a[i] = scan.nextInt();
            int index = color(a[i]);
            if (index != -1) {
                color[index] += 1;
            } else {
                legend += 1;
            }
        } {
            a[i] = scan.nextInt();
            int index = color(a[i]);
            if (index != -1) {
                color[index] += 1;
            } else {
                legend += 1;
            }
        } a[i] = scan.nextInt() a[i] a i scan.nextInt() scan.nextInt scan int index = color(a[i]); index color(a[i]) color a[i] a i if (index != -1) {
                color[index] += 1;
            } else {
                legend += 1;
            } index != -1 index -1 1 {
                color[index] += 1;
            } color[index] += 1 color[index] color index 1 {
                legend += 1;
            } legend += 1 legend 1 int minimum = 0; minimum 0 for (int i = 0; i < 8; i++) {
            if (0 < color[i]) {
                minimum += 1;
            }
        } int i = 0; int i = 0; i 0 i < 8 i 8 i++ i++ i {
            if (0 < color[i]) {
                minimum += 1;
            }
        } {
            if (0 < color[i]) {
                minimum += 1;
            }
        } if (0 < color[i]) {
                minimum += 1;
            } 0 < color[i] 0 color[i] color i {
                minimum += 1;
            } minimum += 1 minimum 1 if (minimum == 0) {
            System.out.println(1 + " " + (minimum + legend));
        } else {
            System.out.println(minimum + " " + (minimum + legend));
        } minimum == 0 minimum 0 {
            System.out.println(1 + " " + (minimum + legend));
        } System.out.println(1 + " " + (minimum + legend)) System.out.println System.out System System.out 1 + " " + (minimum + legend) 1 + " " + (minimum + legend) 1 " " (minimum + legend) minimum legend {
            System.out.println(minimum + " " + (minimum + legend));
        } System.out.println(minimum + " " + (minimum + legend)) System.out.println System.out System System.out minimum + " " + (minimum + legend) minimum + " " + (minimum + legend) minimum " " (minimum + legend) minimum legend String[] args args private static int color(int score) {
        if (score < 400) {
            return 0;
        }
        if (score < 800) {
            return 1;
        }
        if (score < 1200) {
            return 2;
        }
        if (score < 1600) {
            return 3;
        }
        if (score < 2000) {
            return 4;
        }
        if (score < 2400) {
            return 5;
        }
        if (score < 2800) {
            return 6;
        }
        if (score < 3200) {
            return 7;
        }
        return -1;
    } color {
        if (score < 400) {
            return 0;
        }
        if (score < 800) {
            return 1;
        }
        if (score < 1200) {
            return 2;
        }
        if (score < 1600) {
            return 3;
        }
        if (score < 2000) {
            return 4;
        }
        if (score < 2400) {
            return 5;
        }
        if (score < 2800) {
            return 6;
        }
        if (score < 3200) {
            return 7;
        }
        return -1;
    } if (score < 400) {
            return 0;
        } score < 400 score 400 {
            return 0;
        } return 0; 0 if (score < 800) {
            return 1;
        } score < 800 score 800 {
            return 1;
        } return 1; 1 if (score < 1200) {
            return 2;
        } score < 1200 score 1200 {
            return 2;
        } return 2; 2 if (score < 1600) {
            return 3;
        } score < 1600 score 1600 {
            return 3;
        } return 3; 3 if (score < 2000) {
            return 4;
        } score < 2000 score 2000 {
            return 4;
        } return 4; 4 if (score < 2400) {
            return 5;
        } score < 2400 score 2400 {
            return 5;
        } return 5; 5 if (score < 2800) {
            return 6;
        } score < 2800 score 2800 {
            return 6;
        } return 6; 6 if (score < 3200) {
            return 7;
        } score < 3200 score 3200 {
            return 7;
        } return 7; 7 return -1; -1 1 int score score public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(new BufferedReader(new InputStreamReader(System.in)));
        int N = scan.nextInt();
        int[] a = new int[N];
        int[] color = new int[8];
        int legend = 0;
        for (int i = 0; i < N; i++) {
            a[i] = scan.nextInt();
            int index = color(a[i]);
            if (index != -1) {
                color[index] += 1;
            } else {
                legend += 1;
            }
        }
        int minimum = 0;
        for (int i = 0; i < 8; i++) {
            if (0 < color[i]) {
                minimum += 1;
            }
        }
        if (minimum == 0) {
            System.out.println(1 + " " + (minimum + legend));
        } else {
            System.out.println(minimum + " " + (minimum + legend));
        }
    }
    private static int color(int score) {
        if (score < 400) {
            return 0;
        }
        if (score < 800) {
            return 1;
        }
        if (score < 1200) {
            return 2;
        }
        if (score < 1600) {
            return 3;
        }
        if (score < 2000) {
            return 4;
        }
        if (score < 2400) {
            return 5;
        }
        if (score < 2800) {
            return 6;
        }
        if (score < 3200) {
            return 7;
        }
        return -1;
    }
} public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(new BufferedReader(new InputStreamReader(System.in)));
        int N = scan.nextInt();
        int[] a = new int[N];
        int[] color = new int[8];
        int legend = 0;
        for (int i = 0; i < N; i++) {
            a[i] = scan.nextInt();
            int index = color(a[i]);
            if (index != -1) {
                color[index] += 1;
            } else {
                legend += 1;
            }
        }
        int minimum = 0;
        for (int i = 0; i < 8; i++) {
            if (0 < color[i]) {
                minimum += 1;
            }
        }
        if (minimum == 0) {
            System.out.println(1 + " " + (minimum + legend));
        } else {
            System.out.println(minimum + " " + (minimum + legend));
        }
    }
    private static int color(int score) {
        if (score < 400) {
            return 0;
        }
        if (score < 800) {
            return 1;
        }
        if (score < 1200) {
            return 2;
        }
        if (score < 1600) {
            return 3;
        }
        if (score < 2000) {
            return 4;
        }
        if (score < 2400) {
            return 5;
        }
        if (score < 2800) {
            return 6;
        }
        if (score < 3200) {
            return 7;
        }
        return -1;
    }
} Main
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(new BufferedReader(new InputStreamReader(System.in)));
        int N = scan.nextInt();
        int[] a = new int[N];
        int[] color = new int[8];
        int legend = 0;
        for (int i = 0; i < N; i++) {
            a[i] = scan.nextInt();
            int index = color(a[i]);
            if (index != -1) {
                color[index] += 1;
            } else {
                legend += 1;
            }
        }
        int minimum = 0;
        for (int i = 0; i < 8; i++) {
            if (0 < color[i]) {
                minimum += 1;
            }
        }
        if (minimum == 0) {
            System.out.println(1 + " " + (minimum + legend));
        } else {
            System.out.println(minimum + " " + (minimum + legend));
        }
    }
    private static int color(int score) {
        if (score < 400) {
            return 0;
        }
        if (score < 800) {
            return 1;
        }
        if (score < 1200) {
            return 2;
        }
        if (score < 1600) {
            return 3;
        }
        if (score < 2000) {
            return 4;
        }
        if (score < 2400) {
            return 5;
        }
        if (score < 2800) {
            return 6;
        }
        if (score < 3200) {
            return 7;
        }
        return -1;
    }
}
