#include <bits/stdc++.h>
using namespace std;
long long int simpleSieve(long long int limit, vector<long long int> &prime) {
  long long int c = 0;
  vector<bool> mark(limit + 1, true);
  for (long long int p = 2; p * p < limit; p++) {
    if (mark[p] == true) {
      for (long long int i = p * p; i < limit; i += p) mark[i] = false;
    }
  }
  for (long long int p = 2; p < limit; p++) {
    if (mark[p] == true) {
      prime.push_back(p);
      c++;
    }
  }
  return c;
}
long long int segmentedSieve(long long int n) {
  long long int limit = floor(sqrt(n)) + 1;
  vector<long long int> prime;
  prime.reserve(limit);
  int c = simpleSieve(limit, prime);
  long long int low = limit;
  long long int high = 2 * limit;
  while (low < n) {
    if (high >= n) high = n;
    bool mark[limit + 1];
    memset(mark, true, sizeof(mark));
    for (long long int i = 0; i < prime.size(); i++) {
      int loLim = floor(low / prime[i]) * prime[i];
      if (loLim < low) loLim += prime[i];
      for (long long int j = loLim; j < high; j += prime[i])
        mark[j - low] = false;
    }
    for (long long int i = low; i < high; i++)
      if (mark[i - low] == true) c++;
    low = low + limit;
    high = high + limit;
  }
  return c;
}
long long int min(long long int a, long long int b) {
  return ((a < b) ? a : b);
}
int main() {
  long long int n, s = 0, b, f = 0, i = 0, t, a, w, h, j = 0, p, q, m;
  long long int brr[100000];
  unordered_map<int, int> freq;
  string str, str2;
  vector<pair<long long int, long long int>> v1;
  priority_queue<long long int, vector<long long int>, greater<long long int>>
      pq;
  int64_t c = 1;
  cin >> n;
  long long int arr[n];
  for (i = 0; i < n; i++) cin >> arr[i];
  sort(arr, arr + n);
  for (i = 0; i < n; i++) {
    if (arr[i] >= c) c++;
  }
  cout << c;
}
