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

public class Main{
  public static void main(String[] args) {
    try(BufferedReader in = new BufferedReader(new InputStreamReader(System.in))){
      boolean[] colors = new boolean[8];
      int master = 0;
      int N = Integer.parseInt(in.readLine());
      for(String s: in.readLine().split(" ")){
        int rating = Integer.parseInt(s);
        for(int i=0;i<8;i++){
          if(rating < (i+1)*400){
            colors[i] = colors[i] || true;
            break;
          }
        }
        if(rating>=3200){
          master++;
        }
      }
      int cnt=0;
      for(int i=0;i<8;i++){
        if(colors[i]){
          cnt++;
        }
      }
      int min = Math.max(1, cnt);
      int max = cnt+master;
      System.out.println(min+" "+max);
    }catch(IOException e){
      e.printStackTrace();
    }
  }
} import java.util.*; util.* java import java.io.*; io.* java public class Main{
  public static void main(String[] args) {
    try(BufferedReader in = new BufferedReader(new InputStreamReader(System.in))){
      boolean[] colors = new boolean[8];
      int master = 0;
      int N = Integer.parseInt(in.readLine());
      for(String s: in.readLine().split(" ")){
        int rating = Integer.parseInt(s);
        for(int i=0;i<8;i++){
          if(rating < (i+1)*400){
            colors[i] = colors[i] || true;
            break;
          }
        }
        if(rating>=3200){
          master++;
        }
      }
      int cnt=0;
      for(int i=0;i<8;i++){
        if(colors[i]){
          cnt++;
        }
      }
      int min = Math.max(1, cnt);
      int max = cnt+master;
      System.out.println(min+" "+max);
    }catch(IOException e){
      e.printStackTrace();
    }
  }
} Main public static void main(String[] args) {
    try(BufferedReader in = new BufferedReader(new InputStreamReader(System.in))){
      boolean[] colors = new boolean[8];
      int master = 0;
      int N = Integer.parseInt(in.readLine());
      for(String s: in.readLine().split(" ")){
        int rating = Integer.parseInt(s);
        for(int i=0;i<8;i++){
          if(rating < (i+1)*400){
            colors[i] = colors[i] || true;
            break;
          }
        }
        if(rating>=3200){
          master++;
        }
      }
      int cnt=0;
      for(int i=0;i<8;i++){
        if(colors[i]){
          cnt++;
        }
      }
      int min = Math.max(1, cnt);
      int max = cnt+master;
      System.out.println(min+" "+max);
    }catch(IOException e){
      e.printStackTrace();
    }
  } main {
    try(BufferedReader in = new BufferedReader(new InputStreamReader(System.in))){
      boolean[] colors = new boolean[8];
      int master = 0;
      int N = Integer.parseInt(in.readLine());
      for(String s: in.readLine().split(" ")){
        int rating = Integer.parseInt(s);
        for(int i=0;i<8;i++){
          if(rating < (i+1)*400){
            colors[i] = colors[i] || true;
            break;
          }
        }
        if(rating>=3200){
          master++;
        }
      }
      int cnt=0;
      for(int i=0;i<8;i++){
        if(colors[i]){
          cnt++;
        }
      }
      int min = Math.max(1, cnt);
      int max = cnt+master;
      System.out.println(min+" "+max);
    }catch(IOException e){
      e.printStackTrace();
    }
  } try(BufferedReader in = new BufferedReader(new InputStreamReader(System.in))){
      boolean[] colors = new boolean[8];
      int master = 0;
      int N = Integer.parseInt(in.readLine());
      for(String s: in.readLine().split(" ")){
        int rating = Integer.parseInt(s);
        for(int i=0;i<8;i++){
          if(rating < (i+1)*400){
            colors[i] = colors[i] || true;
            break;
          }
        }
        if(rating>=3200){
          master++;
        }
      }
      int cnt=0;
      for(int i=0;i<8;i++){
        if(colors[i]){
          cnt++;
        }
      }
      int min = Math.max(1, cnt);
      int max = cnt+master;
      System.out.println(min+" "+max);
    }catch(IOException e){
      e.printStackTrace();
    } catch(IOException e){
      e.printStackTrace();
    } IOException e {
      e.printStackTrace();
    } e.printStackTrace() e.printStackTrace e {
      boolean[] colors = new boolean[8];
      int master = 0;
      int N = Integer.parseInt(in.readLine());
      for(String s: in.readLine().split(" ")){
        int rating = Integer.parseInt(s);
        for(int i=0;i<8;i++){
          if(rating < (i+1)*400){
            colors[i] = colors[i] || true;
            break;
          }
        }
        if(rating>=3200){
          master++;
        }
      }
      int cnt=0;
      for(int i=0;i<8;i++){
        if(colors[i]){
          cnt++;
        }
      }
      int min = Math.max(1, cnt);
      int max = cnt+master;
      System.out.println(min+" "+max);
    } BufferedReader in = new BufferedReader(new InputStreamReader(System.in)) BufferedReader in = new BufferedReader(new InputStreamReader(System.in)) new BufferedReader(new InputStreamReader(System.in)) boolean[] colors = new boolean[8]; colors new boolean[8] 8 int master = 0; master 0 int N = Integer.parseInt(in.readLine()); N Integer.parseInt(in.readLine()) Integer.parseInt Integer in.readLine() in.readLine in for(String s: in.readLine().split(" ")){
        int rating = Integer.parseInt(s);
        for(int i=0;i<8;i++){
          if(rating < (i+1)*400){
            colors[i] = colors[i] || true;
            break;
          }
        }
        if(rating>=3200){
          master++;
        }
      } String s in.readLine().split(" ") in.readLine().split in.readLine() in.readLine in " " {
        int rating = Integer.parseInt(s);
        for(int i=0;i<8;i++){
          if(rating < (i+1)*400){
            colors[i] = colors[i] || true;
            break;
          }
        }
        if(rating>=3200){
          master++;
        }
      } {
        int rating = Integer.parseInt(s);
        for(int i=0;i<8;i++){
          if(rating < (i+1)*400){
            colors[i] = colors[i] || true;
            break;
          }
        }
        if(rating>=3200){
          master++;
        }
      } int rating = Integer.parseInt(s); rating Integer.parseInt(s) Integer.parseInt Integer s for(int i=0;i<8;i++){
          if(rating < (i+1)*400){
            colors[i] = colors[i] || true;
            break;
          }
        } int i=0; int i=0; i 0 i<8 i 8 i++ i++ i {
          if(rating < (i+1)*400){
            colors[i] = colors[i] || true;
            break;
          }
        } {
          if(rating < (i+1)*400){
            colors[i] = colors[i] || true;
            break;
          }
        } if(rating < (i+1)*400){
            colors[i] = colors[i] || true;
            break;
          } rating < (i+1)*400 rating (i+1)*400 (i+1) i 1 400 {
            colors[i] = colors[i] || true;
            break;
          } colors[i] = colors[i] || true colors[i] colors i colors[i] || true colors[i] colors i true break; if(rating>=3200){
          master++;
        } rating>=3200 rating 3200 {
          master++;
        } master++ master int cnt=0; cnt 0 for(int i=0;i<8;i++){
        if(colors[i]){
          cnt++;
        }
      } int i=0; int i=0; i 0 i<8 i 8 i++ i++ i {
        if(colors[i]){
          cnt++;
        }
      } {
        if(colors[i]){
          cnt++;
        }
      } if(colors[i]){
          cnt++;
        } colors[i] colors i {
          cnt++;
        } cnt++ cnt int min = Math.max(1, cnt); min Math.max(1, cnt) Math.max Math 1 cnt int max = cnt+master; max cnt+master cnt master System.out.println(min+" "+max) System.out.println System.out System System.out min+" "+max min+" "+max min " " max String[] args args public class Main{
  public static void main(String[] args) {
    try(BufferedReader in = new BufferedReader(new InputStreamReader(System.in))){
      boolean[] colors = new boolean[8];
      int master = 0;
      int N = Integer.parseInt(in.readLine());
      for(String s: in.readLine().split(" ")){
        int rating = Integer.parseInt(s);
        for(int i=0;i<8;i++){
          if(rating < (i+1)*400){
            colors[i] = colors[i] || true;
            break;
          }
        }
        if(rating>=3200){
          master++;
        }
      }
      int cnt=0;
      for(int i=0;i<8;i++){
        if(colors[i]){
          cnt++;
        }
      }
      int min = Math.max(1, cnt);
      int max = cnt+master;
      System.out.println(min+" "+max);
    }catch(IOException e){
      e.printStackTrace();
    }
  }
} public class Main{
  public static void main(String[] args) {
    try(BufferedReader in = new BufferedReader(new InputStreamReader(System.in))){
      boolean[] colors = new boolean[8];
      int master = 0;
      int N = Integer.parseInt(in.readLine());
      for(String s: in.readLine().split(" ")){
        int rating = Integer.parseInt(s);
        for(int i=0;i<8;i++){
          if(rating < (i+1)*400){
            colors[i] = colors[i] || true;
            break;
          }
        }
        if(rating>=3200){
          master++;
        }
      }
      int cnt=0;
      for(int i=0;i<8;i++){
        if(colors[i]){
          cnt++;
        }
      }
      int min = Math.max(1, cnt);
      int max = cnt+master;
      System.out.println(min+" "+max);
    }catch(IOException e){
      e.printStackTrace();
    }
  }
} Main

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

public class Main{
  public static void main(String[] args) {
    try(BufferedReader in = new BufferedReader(new InputStreamReader(System.in))){
      boolean[] colors = new boolean[8];
      int master = 0;
      int N = Integer.parseInt(in.readLine());
      for(String s: in.readLine().split(" ")){
        int rating = Integer.parseInt(s);
        for(int i=0;i<8;i++){
          if(rating < (i+1)*400){
            colors[i] = colors[i] || true;
            break;
          }
        }
        if(rating>=3200){
          master++;
        }
      }
      int cnt=0;
      for(int i=0;i<8;i++){
        if(colors[i]){
          cnt++;
        }
      }
      int min = Math.max(1, cnt);
      int max = cnt+master;
      System.out.println(min+" "+max);
    }catch(IOException e){
      e.printStackTrace();
    }
  }
}
