import java.util.*;

public class Main {
    public static void main(String[] args) throws Exception {
        // Your code here!
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] colors = new int[9];
        
        while (n-- > 0) {
            int rate = sc.nextInt();
            int colorNumber = getColor(rate);
            colors[colorNumber]++;
        }
        
        int min = 0;
        int max = 0;
        for (int i = 0; i < 8; i++) {
            if (colors[i] > 0) min++;
        }
        
        max = min + colors[8];
        
        if (min == 0) {
            min = 1;
        }
        
        System.out.println(min + " " + max);
    }
    
    public static int getColor(int rate) {
        if (rate < 400) {
            return 0;
        } else if (rate < 800) {
            return 1;
        } else if (rate < 1200) {
            return 2;
        } else if (rate < 1600) {
            return 3;
        } else if (rate < 2000) {
            return 4;
        } else if (rate < 2400) {
            return 5;
        } else if (rate < 2800) {
            return 6;
        } else if (rate < 3200) {
            return 7;
        }
        return 8;
    }
} import java.util.*; util.* java public class Main {
    public static void main(String[] args) throws Exception {
        // Your code here!
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] colors = new int[9];
        
        while (n-- > 0) {
            int rate = sc.nextInt();
            int colorNumber = getColor(rate);
            colors[colorNumber]++;
        }
        
        int min = 0;
        int max = 0;
        for (int i = 0; i < 8; i++) {
            if (colors[i] > 0) min++;
        }
        
        max = min + colors[8];
        
        if (min == 0) {
            min = 1;
        }
        
        System.out.println(min + " " + max);
    }
    
    public static int getColor(int rate) {
        if (rate < 400) {
            return 0;
        } else if (rate < 800) {
            return 1;
        } else if (rate < 1200) {
            return 2;
        } else if (rate < 1600) {
            return 3;
        } else if (rate < 2000) {
            return 4;
        } else if (rate < 2400) {
            return 5;
        } else if (rate < 2800) {
            return 6;
        } else if (rate < 3200) {
            return 7;
        }
        return 8;
    }
} Main public static void main(String[] args) throws Exception {
        // Your code here!
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] colors = new int[9];
        
        while (n-- > 0) {
            int rate = sc.nextInt();
            int colorNumber = getColor(rate);
            colors[colorNumber]++;
        }
        
        int min = 0;
        int max = 0;
        for (int i = 0; i < 8; i++) {
            if (colors[i] > 0) min++;
        }
        
        max = min + colors[8];
        
        if (min == 0) {
            min = 1;
        }
        
        System.out.println(min + " " + max);
    } main {
        // Your code here!
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] colors = new int[9];
        
        while (n-- > 0) {
            int rate = sc.nextInt();
            int colorNumber = getColor(rate);
            colors[colorNumber]++;
        }
        
        int min = 0;
        int max = 0;
        for (int i = 0; i < 8; i++) {
            if (colors[i] > 0) min++;
        }
        
        max = min + colors[8];
        
        if (min == 0) {
            min = 1;
        }
        
        System.out.println(min + " " + max);
    } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int n = sc.nextInt(); n sc.nextInt() sc.nextInt sc int[] colors = new int[9]; colors new int[9] 9 while (n-- > 0) {
            int rate = sc.nextInt();
            int colorNumber = getColor(rate);
            colors[colorNumber]++;
        } n-- > 0 n-- n 0 {
            int rate = sc.nextInt();
            int colorNumber = getColor(rate);
            colors[colorNumber]++;
        } int rate = sc.nextInt(); rate sc.nextInt() sc.nextInt sc int colorNumber = getColor(rate); colorNumber getColor(rate) getColor rate colors[colorNumber]++ colors[colorNumber] colors colorNumber int min = 0; min 0 int max = 0; max 0 for (int i = 0; i < 8; i++) {
            if (colors[i] > 0) min++;
        } int i = 0; int i = 0; i 0 i < 8 i 8 i++ i++ i {
            if (colors[i] > 0) min++;
        } {
            if (colors[i] > 0) min++;
        } if (colors[i] > 0) min++; colors[i] > 0 colors[i] colors i 0 min++ min max = min + colors[8] max min + colors[8] min colors[8] colors 8 if (min == 0) {
            min = 1;
        } min == 0 min 0 {
            min = 1;
        } min = 1 min 1 System.out.println(min + " " + max) System.out.println System.out System System.out min + " " + max min + " " + max min " " max String[] args args public static int getColor(int rate) {
        if (rate < 400) {
            return 0;
        } else if (rate < 800) {
            return 1;
        } else if (rate < 1200) {
            return 2;
        } else if (rate < 1600) {
            return 3;
        } else if (rate < 2000) {
            return 4;
        } else if (rate < 2400) {
            return 5;
        } else if (rate < 2800) {
            return 6;
        } else if (rate < 3200) {
            return 7;
        }
        return 8;
    } getColor {
        if (rate < 400) {
            return 0;
        } else if (rate < 800) {
            return 1;
        } else if (rate < 1200) {
            return 2;
        } else if (rate < 1600) {
            return 3;
        } else if (rate < 2000) {
            return 4;
        } else if (rate < 2400) {
            return 5;
        } else if (rate < 2800) {
            return 6;
        } else if (rate < 3200) {
            return 7;
        }
        return 8;
    } if (rate < 400) {
            return 0;
        } else if (rate < 800) {
            return 1;
        } else if (rate < 1200) {
            return 2;
        } else if (rate < 1600) {
            return 3;
        } else if (rate < 2000) {
            return 4;
        } else if (rate < 2400) {
            return 5;
        } else if (rate < 2800) {
            return 6;
        } else if (rate < 3200) {
            return 7;
        } rate < 400 rate 400 {
            return 0;
        } return 0; 0 if (rate < 800) {
            return 1;
        } else if (rate < 1200) {
            return 2;
        } else if (rate < 1600) {
            return 3;
        } else if (rate < 2000) {
            return 4;
        } else if (rate < 2400) {
            return 5;
        } else if (rate < 2800) {
            return 6;
        } else if (rate < 3200) {
            return 7;
        } rate < 800 rate 800 {
            return 1;
        } return 1; 1 if (rate < 1200) {
            return 2;
        } else if (rate < 1600) {
            return 3;
        } else if (rate < 2000) {
            return 4;
        } else if (rate < 2400) {
            return 5;
        } else if (rate < 2800) {
            return 6;
        } else if (rate < 3200) {
            return 7;
        } rate < 1200 rate 1200 {
            return 2;
        } return 2; 2 if (rate < 1600) {
            return 3;
        } else if (rate < 2000) {
            return 4;
        } else if (rate < 2400) {
            return 5;
        } else if (rate < 2800) {
            return 6;
        } else if (rate < 3200) {
            return 7;
        } rate < 1600 rate 1600 {
            return 3;
        } return 3; 3 if (rate < 2000) {
            return 4;
        } else if (rate < 2400) {
            return 5;
        } else if (rate < 2800) {
            return 6;
        } else if (rate < 3200) {
            return 7;
        } rate < 2000 rate 2000 {
            return 4;
        } return 4; 4 if (rate < 2400) {
            return 5;
        } else if (rate < 2800) {
            return 6;
        } else if (rate < 3200) {
            return 7;
        } rate < 2400 rate 2400 {
            return 5;
        } return 5; 5 if (rate < 2800) {
            return 6;
        } else if (rate < 3200) {
            return 7;
        } rate < 2800 rate 2800 {
            return 6;
        } return 6; 6 if (rate < 3200) {
            return 7;
        } rate < 3200 rate 3200 {
            return 7;
        } return 7; 7 return 8; 8 int rate rate public class Main {
    public static void main(String[] args) throws Exception {
        // Your code here!
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] colors = new int[9];
        
        while (n-- > 0) {
            int rate = sc.nextInt();
            int colorNumber = getColor(rate);
            colors[colorNumber]++;
        }
        
        int min = 0;
        int max = 0;
        for (int i = 0; i < 8; i++) {
            if (colors[i] > 0) min++;
        }
        
        max = min + colors[8];
        
        if (min == 0) {
            min = 1;
        }
        
        System.out.println(min + " " + max);
    }
    
    public static int getColor(int rate) {
        if (rate < 400) {
            return 0;
        } else if (rate < 800) {
            return 1;
        } else if (rate < 1200) {
            return 2;
        } else if (rate < 1600) {
            return 3;
        } else if (rate < 2000) {
            return 4;
        } else if (rate < 2400) {
            return 5;
        } else if (rate < 2800) {
            return 6;
        } else if (rate < 3200) {
            return 7;
        }
        return 8;
    }
} public class Main {
    public static void main(String[] args) throws Exception {
        // Your code here!
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] colors = new int[9];
        
        while (n-- > 0) {
            int rate = sc.nextInt();
            int colorNumber = getColor(rate);
            colors[colorNumber]++;
        }
        
        int min = 0;
        int max = 0;
        for (int i = 0; i < 8; i++) {
            if (colors[i] > 0) min++;
        }
        
        max = min + colors[8];
        
        if (min == 0) {
            min = 1;
        }
        
        System.out.println(min + " " + max);
    }
    
    public static int getColor(int rate) {
        if (rate < 400) {
            return 0;
        } else if (rate < 800) {
            return 1;
        } else if (rate < 1200) {
            return 2;
        } else if (rate < 1600) {
            return 3;
        } else if (rate < 2000) {
            return 4;
        } else if (rate < 2400) {
            return 5;
        } else if (rate < 2800) {
            return 6;
        } else if (rate < 3200) {
            return 7;
        }
        return 8;
    }
} Main
import java.util.*;

public class Main {
    public static void main(String[] args) throws Exception {
        // Your code here!
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] colors = new int[9];
        
        while (n-- > 0) {
            int rate = sc.nextInt();
            int colorNumber = getColor(rate);
            colors[colorNumber]++;
        }
        
        int min = 0;
        int max = 0;
        for (int i = 0; i < 8; i++) {
            if (colors[i] > 0) min++;
        }
        
        max = min + colors[8];
        
        if (min == 0) {
            min = 1;
        }
        
        System.out.println(min + " " + max);
    }
    
    public static int getColor(int rate) {
        if (rate < 400) {
            return 0;
        } else if (rate < 800) {
            return 1;
        } else if (rate < 1200) {
            return 2;
        } else if (rate < 1600) {
            return 3;
        } else if (rate < 2000) {
            return 4;
        } else if (rate < 2400) {
            return 5;
        } else if (rate < 2800) {
            return 6;
        } else if (rate < 3200) {
            return 7;
        }
        return 8;
    }
}
