#include <bits/stdc++.h>
using namespace std;
bool SR(int &_x) { return scanf("%d", &_x) == 1; }
bool SR(long long &_x) { return scanf("%lld", &_x) == 1; }
bool SR(double &_x) { return scanf("%lf", &_x) == 1; }
bool SR(char *_s) { return scanf("%s", _s) == 1; }
bool RI() { return true; }
template <typename I, typename... T>
bool RI(I &_x, T &..._tail) {
  return SR(_x) && RI(_tail...);
}
void SP(const int _x) { printf("%d", _x); }
void SP(const long long _x) { printf("%lld", _x); }
void SP(const double _x) { printf("%.16lf", _x); }
void SP(const char *s) { printf("%s", s); }
void PL() { puts(""); }
template <typename I, typename... T>
void PL(const I _x, const T... _tail) {
  SP(_x);
  if (sizeof...(_tail)) putchar(' ');
  PL(_tail...);
}
int main() {
  int n;
  RI(n);
  vector<int> v(n);
  for (int i = 0; i < int(n); i++) RI(v[i]);
  multiset<int> s((v).begin(), (v).end());
  for (int i = (1); i <= int(n + 1); i++) {
    auto it = s.lower_bound(i);
    if (it == s.end()) {
      PL(i);
      return 0;
    } else
      s.erase(it);
  }
  return 0;
}
