#include <bits/stdc++.h>
using namespace std;
const int imax = 1e9 + 7;
const long long lmax = 1e18;
vector<int> v;
set<int> st;
int calcMax() {
  st.clear();
  int i, val;
  for (i = 0; i < ((int)v.size()); ++i) {
    if (st.find(v[i] - 1) == st.end())
      st.insert(v[i] - 1);
    else if (st.find(v[i]) == st.end())
      st.insert(v[i]);
    else
      st.insert(v[i] + 1);
  }
  return ((int)st.size());
}
int calcMin() {
  st.clear();
  int i;
  for (i = 0; i < ((int)v.size()); ++i) {
    if (st.find(v[i] - 1) != st.end()) continue;
    if (st.find(v[i]) != st.end()) continue;
    st.insert(v[i] + 1);
  }
  return ((int)st.size());
}
int calc() {
  int i, n;
  cin >> n;
  v.resize(n);
  for (i = 0; i < ((int)v.size()); ++i) cin >> v[i];
  sort(v.begin(), v.end());
  cout << calcMin() << " " << calcMax() << endl;
  return 0;
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  calc();
  return 0;
}
