#include <bits/stdc++.h>
using namespace std;
template <typename T1, typename T2>
istream &operator>>(istream &stream, pair<T1, T2> &p) {
  stream >> p.first >> p.second;
  return stream;
}
template <typename T1, typename T2>
ostream &operator<<(ostream &stream, const pair<T1, T2> &p) {
  stream << p.first << ' ' << p.second;
  return stream;
}
template <typename T>
istream &operator>>(istream &stream, vector<T> &vec) {
  for (size_t i = 0; i < vec.size(); i++) {
    stream >> vec[i];
  }
  return stream;
}
template <typename T>
ostream &operator<<(ostream &stream, const vector<T> &vec) {
  for (size_t i = 0; i < vec.size(); i++) {
    if (i) {
      stream << ' ';
    }
    stream << vec[i];
  }
  return stream;
}
template <typename T>
class MapSmartAccessorWrapper {
  T &m;

 public:
  MapSmartAccessorWrapper(T &m) : m(m) {}
  typename T::mapped_type &operator[](const typename T::key_type &key) {
    return m[key];
  }
  typename T::mapped_type operator[](const typename T::key_type &key) const {
    auto it = m.find(key);
    if (it == m.end()) {
      return typename T::mapped_type();
    }
    return it->second;
  }
};
template <typename TKey, typename TValue>
MapSmartAccessorWrapper<map<TKey, TValue> > operator++(map<TKey, TValue> &m,
                                                       int i) {
  return m;
}
template <typename TKey, typename TValue>
MapSmartAccessorWrapper<unordered_map<TKey, TValue> > operator++(
    unordered_map<TKey, TValue> &m, int i) {
  return m;
}
int main_file(string const &filename);
int main(int argc, const char *argv[]) {
  ios_base::sync_with_stdio(false);
  int n;
  cin >> n;
  vector<int> v(n);
  cin >> v;
  sort(v.begin(), v.end());
  int mex = 1;
  for (int i = 0; i < n; i++) {
    if (v[i] >= mex) {
      mex++;
    }
  }
  cout << mex;
  return 0;
}
