#include <bits/stdc++.h>
using namespace std;
struct point {
  int x;
  int y;
};
int gcd(int m, int n) {
  if ((0 == m) || (0 == n)) return 0;
  while (m != n) {
    if (m > n)
      m = m - n;
    else
      n = n - m;
  }
  return m;
}
int lcm(int m, int n) {
  if ((0 == m) || (0 == n)) return 0;
  return ((m / gcd(m, n)) * n);
}
int input() {
  int x;
  cin >> x;
  return x;
}
int moji(char in) {
  int ans = (int)in - (int)'a';
  if ((ans < 0) || (ans > 25)) {
    ans = 26;
  }
  return ans;
}
const int VV = 10;
int cost[VV][VV];
int d[VV];
bool used[VV];
void dijkstra(int s) {
  fill(d, d + VV, 100000);
  fill(used, used + VV, false);
  d[s] = 0;
  while (true) {
    int v = -1;
    for (int u = 0; u < VV; u++) {
      if (!used[u] && (v == -1 || d[u] < d[v])) v = u;
    }
    if (v == -1) break;
    used[v] = true;
    for (int u = 0; u < VV; u++) {
      d[u] = min(d[u], d[v] + cost[v][u]);
    }
  }
}
int compare_int(const void* a, const void* b) { return *(int*)a - *(int*)b; }
int binary_searchh(long long x, long long k[], int n) {
  int l = 0;
  int r = n;
  while (r - l >= 1) {
    int i = (l + r) / 2;
    if (k[i] == x)
      return i;
    else if (k[i] < x)
      l = i + 1;
    else
      r = i;
  }
  return -1;
}
struct File {
  int aa;
  int bb;
  File(const int& aa, const int& bb) : aa(aa), bb(bb) {}
};
bool operator<(const File& a, const File& b) {
  return std::tie(a.aa, a.bb) < std::tie(b.aa, b.bb);
}
long long gcd(long long a, long long b) {
  if (b == 0) {
    return a;
  }
  return gcd(b, a % b);
}
long long lcm(long long a, long long b) {
  long long g = gcd(a, b);
  return a / g * b;
}
long long kaijo(long long x) {
  long long l = 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 + 7;
  long long sum = 1;
  for (int i = x; i > 0; i--) {
    sum *= i;
    if (sum > l) {
      sum %= l;
    }
  }
  return sum;
}
int main() {
  int N;
  cin >> N;
  int a[N];
  for (int i = 0; i < N; i++) {
    cin >> a[i];
  }
  bool x[8];
  for (int i = 0; i < 8; i++) {
    x[i] = false;
  }
  int sum = 0;
  int ok = 0;
  for (int i = 0; i < N; i++) {
    if (a[i] < 400) {
      if (x[0] == false) {
        sum++;
        x[0] = true;
      }
    } else if (a[i] < 800) {
      if (x[1] == false) {
        sum++;
        x[1] = true;
      }
    } else if (a[i] < 1200) {
      if (x[2] == false) {
        sum++;
        x[2] = true;
      }
    } else if (a[i] < 1600) {
      if (x[3] == false) {
        sum++;
        x[3] = true;
      }
    } else if (a[i] < 2000) {
      if (x[4] == false) {
        sum++;
        x[4] = true;
      }
    } else if (a[i] < 2400) {
      if (x[5] == false) {
        sum++;
        x[5] = true;
      }
    } else if (a[i] < 2800) {
      if (x[6] == false) {
        sum++;
        x[6] = true;
      }
    } else if (a[i] < 3200) {
      if (x[7] == false) {
        sum++;
        x[7] = true;
      }
    } else {
      ok++;
    }
  }
  cout << sum << endl;
  cout << sum + ok << endl;
}
