#include <bits/stdc++.h>
using namespace std;
long long Mod = 998244353;
long long poww(long long a, long long b, long long mod) {
  long long res = 1;
  if (b < 0) b = (b % (mod - 1) + mod - 1) % (mod - 1);
  for (; b; b >>= 1, a = 1ll * a * a % mod)
    if (b & 1) res = 1ll * res * a % mod;
  return res;
}
void Max(long long& x, long long y) { x = max(x, y); }
void Min(long long& x, long long y) { x = min(x, y); }
const long long N = 200200, K = 2;
long long dp[N][K], dp2[N], a[N], n;
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  cin >> n;
  for (int i = 1; i <= n; i++) {
    cin >> a[i];
    dp[a[i]][0]++;
    dp2[a[i]]++;
  }
  for (int i = 1; i <= n; i++) {
    if (dp[i - 1][0] + dp[i - 1][1] == 0 && dp[i][0]) {
      dp[i - 1][1]++;
      dp[i][0]--;
    }
    if (dp[i][0] && dp[i][0] + dp[i][1] > 1) {
      dp[i + 1][1]++;
      dp[i][0]--;
    }
  }
  long long mx = 0;
  for (int i = 0; i < N; i++) mx += (dp[i][0] + dp[i][1] > 0);
  for (int i = 1; i <= n; i++) {
    if (dp2[i - 1] && dp2[i]) {
      dp2[i] = 0;
    } else if (dp2[i]) {
      dp2[i + 1] = 1;
      dp2[i] = 0;
      i++;
    }
  }
  long long mn = 0;
  for (int i = 0; i < N; i++) mn += (dp2[i] > 0);
  cout << mn << ' ' << mx << '\n';
  return 0;
}
