Problem: The currency system in the Kingdom of Yoax-Musty is strange and fairly inefficient. Like other countries, the kingdom has its own currencty unit denoted by K $ (kingdom dollar). However, the Ministry of Finance issues bills for every value between 1 K $ and (231 - 1) K $ worth.

On the other hand, this system often enables people to make many different values just with a small number of bills. For example, if you have four bills of 1 K $, 2 K $, 4 K $, and 8 K $ worth respectively, you can make any values from 1 K #36; to 15 K $.

In this problem, you are requested to write a program that finds the minimum value that cannot be made with a given set (multiset in a mathematical sense) of bills. For the case with the four bills (1 K $, 2 K $, 4 K $, and 8 K $), since you can make any values up to 15 K $, your program should report 16 K $.



Input

The input consists of two lines. The first line contains an integer N (1 ≤ N ≤ 10000), the number of bills. The second line contains N integers, each of which represents the value of a bill in K $. There may be multiple bills of the same value.

Output

Print the minimum value unable to be made on a line. The value should be given in K $ and without any currency sign or name.

Example

Input




Output

Solution (in CPP):

Solution:
#include <iostream>
#include <cstdio>
#include <string>
#include <vector>
#include <set>
#include <map>
#include <queue>
#include <cmath>
#include <cctype>
#include <sstream>
#include <algorithm>
using namespace std;
#define all(c) (c).begin(), (c).end()
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
#define iter(c) __typeof((c).begin())
#define tr(c, it) for (iter(c) it = (c).begin(); it != (c).end(); it++)
#define pb(e) push_back(e)
#define mp(a, b) make_pair(a, b)
#define pr(a) cout << (a) << endl
typedef long long ll;
typedef pair<int,int> P;
const int MAX=1000000000;
int dx[4]={-1,0,1,0},dy[4]={0,-1,0,1};

int main() {
  int n;
  cin >> n;
  ll a[n];
  rep(i,n) cin >> a[i];
  sort(a,a+n);
  ll sum=1;
  rep(i,n) {
    if(sum<a[i]) break;
    sum+=a[i];
  }
  pr(sum);
  return 0;
}