#include<iostream>
#include<vector>

using namespace std;

int main() {
    int n;
    cin >> n;
    vector<int> nums;
    int num;
    while(n-- > 0) {
        cin >> num;
        nums.push_back(num);
    }
    int left = 0;//    已经出现的数
    int right = nums.size();//    右边界,不可能是最小未出现的正整数
    while(left < right) {
        if(nums[left] == left + 1) {//    出现新的最小正整数
            left++;
        }
        else if(nums[left] <= left || nums[left] > right  || nums[nums[left] - 1] == nums[left]) {
            //    已经出现的数 || 不可能的结果 || 当前数应该在的位置上就是该数
            nums[left] = nums[--right];
        }
        else swap(nums[left], nums[nums[left] - 1]);//    把left位置数移到正确的位置上,上边判断需要排除这两个位置的数相等的情况
    }
    cout << left + 1 <<endl;
    return 0;
}