# 만들 수 없는 최솟값을 구하라
# 1부터 검사하게 되면 모든 수를 다 조합해가면서 하므로 비효율 어떤 아이디어 필요할지 모르겟다..
# 1회차 => 풀지 못함
# 그리디의 경험이 필요한 문제
# 1부터 시작하는 target을 만들 수 있는지 확인한다. 현재 선택한 값과 이전에 완료된 target숫자를 써도 된다.
# ** 결국, t가 되는지 검사할 때 t-1까지의 모든 수가 조합으로 가능하다고 검사 완료했으므로 현재 선택한 화폐가 t보다 크지만 않으면 가능하다.
# ** 하지만 t보다 숫자 크다면 현재 화폐 조합으로는 t를 만들 수 없다.
# 1회차, 2회차 -> 실패
#
n = int(input())
data = list(map(int, input().split()))
data.sort()

target = 1
for x in data:
    # 만들 수 없는 금액일 때 반복종료
    if target < x:
        break
    target += x
print(target)
