import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;

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 < a.length; ++i) {
            a[i] = sc.nextInt();
        }

        System.out.println(solve(a));

        sc.close();
    }

    static String solve(int[] a) {
        Set<Integer> colors = new HashSet<>();
        int freeCount = 0;
        for (int ai : a) {
            if (ai <= 3199) {
                colors.add(ai / 400);
            } else {
                ++freeCount;
            }
        }

        int minColorNum = Math.max(1, colors.size());
        int maxColorNum = colors.size() + freeCount;

        return String.format("%d %d", minColorNum, maxColorNum);
    }
} import java.util.HashSet; HashSet java.util import java.util.Scanner; Scanner java.util import java.util.Set; Set 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 < a.length; ++i) {
            a[i] = sc.nextInt();
        }

        System.out.println(solve(a));

        sc.close();
    }

    static String solve(int[] a) {
        Set<Integer> colors = new HashSet<>();
        int freeCount = 0;
        for (int ai : a) {
            if (ai <= 3199) {
                colors.add(ai / 400);
            } else {
                ++freeCount;
            }
        }

        int minColorNum = Math.max(1, colors.size());
        int maxColorNum = colors.size() + freeCount;

        return String.format("%d %d", minColorNum, maxColorNum);
    }
} 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 < a.length; ++i) {
            a[i] = sc.nextInt();
        }

        System.out.println(solve(a));

        sc.close();
    } main {
        Scanner sc = new Scanner(System.in);

        int N = sc.nextInt();
        int[] a = new int[N];
        for (int i = 0; i < a.length; ++i) {
            a[i] = sc.nextInt();
        }

        System.out.println(solve(a));

        sc.close();
    } 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 < a.length; ++i) {
            a[i] = sc.nextInt();
        } int i = 0; int i = 0; i 0 i < a.length i a.length a a.length ++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(a)) System.out.println System.out System System.out solve(a) solve a sc.close() sc.close sc String[] args args static String solve(int[] a) {
        Set<Integer> colors = new HashSet<>();
        int freeCount = 0;
        for (int ai : a) {
            if (ai <= 3199) {
                colors.add(ai / 400);
            } else {
                ++freeCount;
            }
        }

        int minColorNum = Math.max(1, colors.size());
        int maxColorNum = colors.size() + freeCount;

        return String.format("%d %d", minColorNum, maxColorNum);
    } solve {
        Set<Integer> colors = new HashSet<>();
        int freeCount = 0;
        for (int ai : a) {
            if (ai <= 3199) {
                colors.add(ai / 400);
            } else {
                ++freeCount;
            }
        }

        int minColorNum = Math.max(1, colors.size());
        int maxColorNum = colors.size() + freeCount;

        return String.format("%d %d", minColorNum, maxColorNum);
    } Set<Integer> colors = new HashSet<>(); colors new HashSet<>() int freeCount = 0; freeCount 0 for (int ai : a) {
            if (ai <= 3199) {
                colors.add(ai / 400);
            } else {
                ++freeCount;
            }
        } int ai a {
            if (ai <= 3199) {
                colors.add(ai / 400);
            } else {
                ++freeCount;
            }
        } {
            if (ai <= 3199) {
                colors.add(ai / 400);
            } else {
                ++freeCount;
            }
        } if (ai <= 3199) {
                colors.add(ai / 400);
            } else {
                ++freeCount;
            } ai <= 3199 ai 3199 {
                colors.add(ai / 400);
            } colors.add(ai / 400) colors.add colors ai / 400 ai 400 {
                ++freeCount;
            } ++freeCount freeCount int minColorNum = Math.max(1, colors.size()); minColorNum Math.max(1, colors.size()) Math.max Math 1 colors.size() colors.size colors int maxColorNum = colors.size() + freeCount; maxColorNum colors.size() + freeCount colors.size() colors.size colors freeCount return String.format("%d %d", minColorNum, maxColorNum); String.format("%d %d", minColorNum, maxColorNum) String.format String "%d %d" minColorNum maxColorNum 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 < a.length; ++i) {
            a[i] = sc.nextInt();
        }

        System.out.println(solve(a));

        sc.close();
    }

    static String solve(int[] a) {
        Set<Integer> colors = new HashSet<>();
        int freeCount = 0;
        for (int ai : a) {
            if (ai <= 3199) {
                colors.add(ai / 400);
            } else {
                ++freeCount;
            }
        }

        int minColorNum = Math.max(1, colors.size());
        int maxColorNum = colors.size() + freeCount;

        return String.format("%d %d", minColorNum, maxColorNum);
    }
} 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 < a.length; ++i) {
            a[i] = sc.nextInt();
        }

        System.out.println(solve(a));

        sc.close();
    }

    static String solve(int[] a) {
        Set<Integer> colors = new HashSet<>();
        int freeCount = 0;
        for (int ai : a) {
            if (ai <= 3199) {
                colors.add(ai / 400);
            } else {
                ++freeCount;
            }
        }

        int minColorNum = Math.max(1, colors.size());
        int maxColorNum = colors.size() + freeCount;

        return String.format("%d %d", minColorNum, maxColorNum);
    }
} Main
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;

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 < a.length; ++i) {
            a[i] = sc.nextInt();
        }

        System.out.println(solve(a));

        sc.close();
    }

    static String solve(int[] a) {
        Set<Integer> colors = new HashSet<>();
        int freeCount = 0;
        for (int ai : a) {
            if (ai <= 3199) {
                colors.add(ai / 400);
            } else {
                ++freeCount;
            }
        }

        int minColorNum = Math.max(1, colors.size());
        int maxColorNum = colors.size() + freeCount;

        return String.format("%d %d", minColorNum, maxColorNum);
    }
}