import java.util.*;
import java.io.*;
import java.util.Scanner;

/**
 * Created by Hp on 6/18/2016.
 */
public class B {
    public static void main(String [] ar) throws  IOException{

        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(bufferedReader.readLine());
        String[] s = bufferedReader.readLine().split(" ");
        long a[]=new long[n];
        int ans=1;
        for(int i=0;i<n;i++){
            a[i]=Integer.parseInt(s[i]);
        }
        Arrays.sort(a);
        for(int i=0;i<n;i++){
            if(a[i]>=ans){
                ans++;
            }
        }
        System.out.println(ans);
    }

    // -----------MyScanner class for faster input----------
    public static class MyScanner {
        BufferedReader br;
        StringTokenizer st;

        public MyScanner() {
            br = new BufferedReader(new InputStreamReader(System.in));
        }

        String next() {
            while (st == null || !st.hasMoreElements()) {
                try {
                    st = new StringTokenizer(br.readLine());
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            return st.nextToken();
        }

        int nextInt() {
            return Integer.parseInt(next());
        }

        long nextLong() {
            return Long.parseLong(next());
        }

        double nextDouble() {
            return Double.parseDouble(next());
        }

        String nextLine() {
            String str = "";
            try {
                str = br.readLine();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return str;
        }

    }
    // --------------------------------------------------------
}


import java.util.Arrays;
import java.util.Scanner;

/**
 * Created by Hp on 6/18/2016.
 */
public class B {
    public static void main(String [] ar){
        Scanner s=new Scanner(System.in);
        int n=s.nextInt();
        long a[]=new long[n];
        long ans=1;
        for(int i=0;i<n;i++){
            a[i]=s.nextLong();
        }
        Arrays.sort(a);
        for(int i=0;i<n;i++){
            if(a[i]>=ans){
                ans++;
            }
        }
        System.out.println(ans);
    }
}


import java.util.*;
import java.io.*;
import java.util.Scanner;

/**
 * Created by Hp on 6/18/2016.
 */
public class B {
    public static void main(String [] ar){
        MyScanner s = new MyScanner();
        int n=s.nextInt();
        long a[]=new long[n];
        int ans=1;
        for(int i=0;i<n;i++){
            a[i]=s.nextLong();
        }
        Arrays.sort(a);
        for(int i=0;i<n;i++){
            if(a[i]>=ans){
                ans++;
            }
        }
        System.out.println(ans);
    }

    // -----------MyScanner class for faster input----------
    public static class MyScanner {
        BufferedReader br;
        StringTokenizer st;

        public MyScanner() {
            br = new BufferedReader(new InputStreamReader(System.in));
        }

        String next() {
            while (st == null || !st.hasMoreElements()) {
                try {
                    st = new StringTokenizer(br.readLine());
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            return st.nextToken();
        }

        int nextInt() {
            return Integer.parseInt(next());
        }

        long nextLong() {
            return Long.parseLong(next());
        }

        double nextDouble() {
            return Double.parseDouble(next());
        }

        String nextLine() {
            String str = "";
            try {
                str = br.readLine();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return str;
        }

    }
    // --------------------------------------------------------
}


import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.NoSuchElementException;

public class B {

	int N;
	Integer[] a;
	public void solve() {
		N = nextInt();
		a = new Integer[N];
		for(int i = 0;i < N;i++){
			a[i] = new Integer(nextInt());
		}

		Arrays.sort(a);
		a[0] = 1;
		for(int i = 1;i < N;i++){
			if(a[i - 1] < a[i]){
				a[i] = a[i - 1] + 1;
			}
		}

		int pre = 0;
		for(int i = 0;i < N;i++){
			if(a[i] - pre > 1){
				out.println(pre + 1);
				return;
			}
			pre = a[i];
		}

		out.println(pre + 1);

	}

	public static void main(String[] args) {
		out.flush();
		new B().solve();
		out.close();
	}

	/* Input */
	private static final InputStream in = System.in;
	private static final PrintWriter out = new PrintWriter(System.out);
	private final byte[] buffer = new byte[2048];
	private int p = 0;
	private int buflen = 0;

	private boolean hasNextByte() {
		if (p < buflen)
			return true;
		p = 0;
		try {
			buflen = in.read(buffer);
		} catch (IOException e) {
			e.printStackTrace();
		}
		if (buflen <= 0)
			return false;
		return true;
	}

	public boolean hasNext() {
		while (hasNextByte() && !isPrint(buffer[p])) {
			p++;
		}
		return hasNextByte();
	}

	private boolean isPrint(int ch) {
		if (ch >= '!' && ch <= '~')
			return true;
		return false;
	}

	private int nextByte() {
		if (!hasNextByte())
			return -1;
		return buffer[p++];
	}

	public String next() {
		if (!hasNext())
			throw new NoSuchElementException();
		StringBuilder sb = new StringBuilder();
		int b = -1;
		while (isPrint((b = nextByte()))) {
			sb.appendCodePoint(b);
		}
		return sb.toString();
	}

	public int nextInt() {
		return Integer.parseInt(next());
	}

	public long nextLong() {
		return Long.parseLong(next());
	}

	public double nextDouble() {
		return Double.parseDouble(next());
	}
}


import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.NoSuchElementException;
import java.util.TreeSet;

public class B {

	int N;
	int[] a;
	public void solve() {
		N = nextInt();
		a = new int[N];
		for(int i = 0;i < N;i++){
			a[i] = nextInt();
		}

		Arrays.sort(a);
		a[0] = 1;
		for(int i = 1;i < N;i++){
			if(a[i - 1] < a[i]){
				a[i] = a[i - 1] + 1;
			}
		}
		TreeSet<Integer> treeSet = new TreeSet<Integer>();

		for(int i = 0;i < N;i++){
			treeSet.add(a[i]);
		}

		int pre = 0;
		for(int value : treeSet){
			if(value - pre > 1){
				out.println(pre + 1);
				return;
			}
			pre = value;
		}

		out.println(pre + 1);

	}

	public static void main(String[] args) {
		out.flush();
		new B().solve();
		out.close();
	}

	/* Input */
	private static final InputStream in = System.in;
	private static final PrintWriter out = new PrintWriter(System.out);
	private final byte[] buffer = new byte[2048];
	private int p = 0;
	private int buflen = 0;

	private boolean hasNextByte() {
		if (p < buflen)
			return true;
		p = 0;
		try {
			buflen = in.read(buffer);
		} catch (IOException e) {
			e.printStackTrace();
		}
		if (buflen <= 0)
			return false;
		return true;
	}

	public boolean hasNext() {
		while (hasNextByte() && !isPrint(buffer[p])) {
			p++;
		}
		return hasNextByte();
	}

	private boolean isPrint(int ch) {
		if (ch >= '!' && ch <= '~')
			return true;
		return false;
	}

	private int nextByte() {
		if (!hasNextByte())
			return -1;
		return buffer[p++];
	}

	public String next() {
		if (!hasNext())
			throw new NoSuchElementException();
		StringBuilder sb = new StringBuilder();
		int b = -1;
		while (isPrint((b = nextByte()))) {
			sb.appendCodePoint(b);
		}
		return sb.toString();
	}

	public int nextInt() {
		return Integer.parseInt(next());
	}

	public long nextLong() {
		return Long.parseLong(next());
	}

	public double nextDouble() {
		return Double.parseDouble(next());
	}
}


import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.NoSuchElementException;

public class B {

	int N;
	int[] a;
	public void solve() {
		N = nextInt();
		a = new int[N];
		for(int i = 0;i < N;i++){
			a[i] = nextInt();
		}

		Arrays.sort(a);
		boolean[] used = new boolean[100000 + 1];
		used[a[0]] = true;
		for(int i = 1;i < N;i++){
			if(a[i - 1] < a[i]){
				a[i] = a[i - 1] + 1;
				used[a[i]] = true;
			}
		}

		for(int i = 1;i <= 100000;i++){
			if(!used[i]){
				out.println(i);
				break;
			}
		}

	}

	public static void main(String[] args) {
		out.flush();
		new B().solve();
		out.close();
	}

	/* Input */
	private static final InputStream in = System.in;
	private static final PrintWriter out = new PrintWriter(System.out);
	private final byte[] buffer = new byte[2048];
	private int p = 0;
	private int buflen = 0;

	private boolean hasNextByte() {
		if (p < buflen)
			return true;
		p = 0;
		try {
			buflen = in.read(buffer);
		} catch (IOException e) {
			e.printStackTrace();
		}
		if (buflen <= 0)
			return false;
		return true;
	}

	public boolean hasNext() {
		while (hasNextByte() && !isPrint(buffer[p])) {
			p++;
		}
		return hasNextByte();
	}

	private boolean isPrint(int ch) {
		if (ch >= '!' && ch <= '~')
			return true;
		return false;
	}

	private int nextByte() {
		if (!hasNextByte())
			return -1;
		return buffer[p++];
	}

	public String next() {
		if (!hasNext())
			throw new NoSuchElementException();
		StringBuilder sb = new StringBuilder();
		int b = -1;
		while (isPrint((b = nextByte()))) {
			sb.appendCodePoint(b);
		}
		return sb.toString();
	}

	public int nextInt() {
		return Integer.parseInt(next());
	}

	public long nextLong() {
		return Long.parseLong(next());
	}

	public double nextDouble() {
		return Double.parseDouble(next());
	}
}


import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.NoSuchElementException;

public class B {

	int N;
	ArrayList<Integer> a,b;
	public void solve() {
		N = nextInt();
		a = new ArrayList<Integer>();
		b = new ArrayList<Integer>();
		for(int i = 0;i < N;i++){
			a.add(nextInt());
		}

		Collections.sort(a);
		b.add(1);
		for(int i = 1;i < N;i++){
			if(b.get(i - 1) < a.get(i)){
				b.add(b.get(i - 1) + 1);
			}else{
				b.add(a.get(i));
			}
		}

		int pre = 0;
		for(int i = 0;i < N;i++){
			if(b.get(i) - pre > 1){
				out.println(pre + 1);
				return;
			}
			pre = b.get(i);
		}

		out.println(pre + 1);

	}

	public static void main(String[] args) {
		out.flush();
		new B().solve();
		out.close();
	}

	/* Input */
	private static final InputStream in = System.in;
	private static final PrintWriter out = new PrintWriter(System.out);
	private final byte[] buffer = new byte[2048];
	private int p = 0;
	private int buflen = 0;

	private boolean hasNextByte() {
		if (p < buflen)
			return true;
		p = 0;
		try {
			buflen = in.read(buffer);
		} catch (IOException e) {
			e.printStackTrace();
		}
		if (buflen <= 0)
			return false;
		return true;
	}

	public boolean hasNext() {
		while (hasNextByte() && !isPrint(buffer[p])) {
			p++;
		}
		return hasNextByte();
	}

	private boolean isPrint(int ch) {
		if (ch >= '!' && ch <= '~')
			return true;
		return false;
	}

	private int nextByte() {
		if (!hasNextByte())
			return -1;
		return buffer[p++];
	}

	public String next() {
		if (!hasNext())
			throw new NoSuchElementException();
		StringBuilder sb = new StringBuilder();
		int b = -1;
		while (isPrint((b = nextByte()))) {
			sb.appendCodePoint(b);
		}
		return sb.toString();
	}

	public int nextInt() {
		return Integer.parseInt(next());
	}

	public long nextLong() {
		return Long.parseLong(next());
	}

	public double nextDouble() {
		return Double.parseDouble(next());
	}
}


import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.NoSuchElementException;
import java.util.Random;

public class B {

	int N;
	int[] a;

	public void shuffleArray(int[] arr) {
		int n = arr.length;
		Random rnd = new Random();
		for (int i = 0; i < n; ++i) {
			int tmp = arr[i];
			int randomPos = i + rnd.nextInt(n - i);
			arr[i] = arr[randomPos];
			arr[randomPos] = tmp;
		}
	}

	public void solve() {
		N = nextInt();
		a = new int[N];
		for (int i = 0; i < N; i++) {
			a[i] = nextInt();
		}
		shuffleArray(a);
		Arrays.sort(a);
		a[0] = 1;
		for (int i = 1; i < N; i++) {
			if (a[i - 1] < a[i]) {
				a[i] = a[i - 1] + 1;
			}
		}

		int pre = 0;
		for (int i = 0; i < N; i++) {
			if (a[i] - pre > 1) {
				out.println(pre + 1);
				return;
			}
			pre = a[i];
		}

		out.println(pre + 1);

	}

	public static void main(String[] args) {
		out.flush();
		new B().solve();
		out.close();
	}

	/* Input */
	private static final InputStream in = System.in;
	private static final PrintWriter out = new PrintWriter(System.out);
	private final byte[] buffer = new byte[2048];
	private int p = 0;
	private int buflen = 0;

	private boolean hasNextByte() {
		if (p < buflen)
			return true;
		p = 0;
		try {
			buflen = in.read(buffer);
		} catch (IOException e) {
			e.printStackTrace();
		}
		if (buflen <= 0)
			return false;
		return true;
	}

	public boolean hasNext() {
		while (hasNextByte() && !isPrint(buffer[p])) {
			p++;
		}
		return hasNextByte();
	}

	private boolean isPrint(int ch) {
		if (ch >= '!' && ch <= '~')
			return true;
		return false;
	}

	private int nextByte() {
		if (!hasNextByte())
			return -1;
		return buffer[p++];
	}

	public String next() {
		if (!hasNext())
			throw new NoSuchElementException();
		StringBuilder sb = new StringBuilder();
		int b = -1;
		while (isPrint((b = nextByte()))) {
			sb.appendCodePoint(b);
		}
		return sb.toString();
	}

	public int nextInt() {
		return Integer.parseInt(next());
	}

	public long nextLong() {
		return Long.parseLong(next());
	}

	public double nextDouble() {
		return Double.parseDouble(next());
	}
}


import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.NoSuchElementException;

public class B {

	int N;
	int[] a;
	public void solve() {
		N = nextInt();
		a = new int[N];
		for(int i = 0;i < N;i++){
			a[i] = nextInt();
		}

		Arrays.sort(a);
		a[0] = 1;
		for(int i = 1;i < N;i++){
			if(a[i - 1] < a[i]){
				a[i] = a[i - 1] + 1;
			}
		}

		int pre = 0;
		for(int i = 0;i < N;i++){
			if(a[i] - pre > 1){
				out.println(pre + 1);
				return;
			}
			pre = a[i];
		}

		out.println(pre + 1);

	}

	public static void main(String[] args) {
		out.flush();
		new B().solve();
		out.close();
	}

	/* Input */
	private static final InputStream in = System.in;
	private static final PrintWriter out = new PrintWriter(System.out);
	private final byte[] buffer = new byte[2048];
	private int p = 0;
	private int buflen = 0;

	private boolean hasNextByte() {
		if (p < buflen)
			return true;
		p = 0;
		try {
			buflen = in.read(buffer);
		} catch (IOException e) {
			e.printStackTrace();
		}
		if (buflen <= 0)
			return false;
		return true;
	}

	public boolean hasNext() {
		while (hasNextByte() && !isPrint(buffer[p])) {
			p++;
		}
		return hasNextByte();
	}

	private boolean isPrint(int ch) {
		if (ch >= '!' && ch <= '~')
			return true;
		return false;
	}

	private int nextByte() {
		if (!hasNextByte())
			return -1;
		return buffer[p++];
	}

	public String next() {
		if (!hasNext())
			throw new NoSuchElementException();
		StringBuilder sb = new StringBuilder();
		int b = -1;
		while (isPrint((b = nextByte()))) {
			sb.appendCodePoint(b);
		}
		return sb.toString();
	}

	public int nextInt() {
		return Integer.parseInt(next());
	}

	public long nextLong() {
		return Long.parseLong(next());
	}

	public double nextDouble() {
		return Double.parseDouble(next());
	}
}


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.*;
import java.util.stream.IntStream;
import java.util.stream.Stream;

/**
 * Created by Shurikat on 09.07.16.
 */
public class Codeforces {
    static Integer[] array;
    static Integer[] t;
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int n = Integer.parseInt(st.nextToken());
        st = new StringTokenizer(br.readLine());
        //t = new int[n];
        ArrayList<Integer> list = new ArrayList<>(n); // +
        for (int i = 0; i < n; ++i) {
            list.add(Integer.parseInt(st.nextToken())); //+
            //t[i] = Integer.parseInt(st.nextToken());
        }
        t = list.toArray(new Integer[n]);
        Arrays.sort(t);
        t[0] = 1;
        for (int i = 0; i < n - 1; ++i) {
            int d = t[i + 1] - t[i];
            if (d > 1) {
                t[i + 1] -= d - 1;
            }
        }
        System.out.println(t[n - 1] + 1);/*/
        /*
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int n = Integer.parseInt(st.nextToken());
        st = new StringTokenizer(br.readLine());

        ArrayList<Integer> list = new ArrayList<>(n);
        for (int i = 0; i < n; ++i)
            list.add(Integer.parseInt(st.nextToken()));

        //list.sort(Integer::compareTo);
        //array = list.toArray(new Integer[n]);
        array = list.toArray(new Integer[n]);
        Arrays.sort(array);

        array[0] = 1;
        for (int i = 0; i < n - 1; ++i) {
            int d = array[i + 1] - array[i];
            if (d > 1) {
                array[i + 1] -= d - 1;
            }
        }
        System.out.println(array[n - 1] + 1);
    //*/
    }
}


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Comparator;
import java.util.StringTokenizer;

/**
 * Created by Shurikat on 09.07.16.
 */
public class Codeforces {
    public static void main(String[] args) throws Exception {
        long t0 = System.currentTimeMillis();
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int n = Integer.parseInt(st.nextToken());
        st = new StringTokenizer(br.readLine());
        int[] t = new int[n];
        for (int i = 0; i < n; ++i) {
            t[i] = Integer.parseInt(st.nextToken());
        }
        if (n == 100000 && t[0] == 57034) {
            System.out.println("StringTokenizer sucks " + (System.currentTimeMillis() - t0));
        }
        Arrays.parallelSort(t);
        if (n == 100000 && t[0] == 57034) {
            System.out.println("sort sucks " + (System.currentTimeMillis() - t0));
        }

//        int count = t[0] - 1;
//        for (int i = 0; i < n - 1; ++i) {
//            if (t[i + 1] - t[i] > 1)
//                count += t[i + 1] - t[i] - 1;
//        }
//        System.out.println(t[n - 1] - count + 1);

        t[0] = 1;
        for (int i = 0; i < n - 1; ++i) {
            int d = t[i + 1] - t[i];
            if (d > 1) {
                t[i + 1] -= d - 1;
            }
        }
        System.out.println(t[n - 1] + 1);

    }
}


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.*;
import java.util.stream.IntStream;
import java.util.stream.Stream;

/**
 * Created by Shurikat on 09.07.16.
 */
public class Codeforces {
    static int[] t;
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int n = Integer.parseInt(st.nextToken());
        st = new StringTokenizer(br.readLine());

        t = new int[n];
        //t = new Integer[n]; // -
        //ArrayList<Integer> list = new ArrayList<>(n); // +
        for (int i = 0; i < n; ++i) { // -
            //list.add(Integer.parseInt(st.nextToken())); //+
            t[i] = Integer.parseInt(st.nextToken()); // -
        }
        //t = list.toArray(new Integer[n]); // +
        Arrays.sort(t);

        t[0] = 1;
        for (int i = 0; i < n - 1; ++i) {
            int d = t[i + 1] - t[i];
            if (d > 1) {
                t[i + 1] -= d - 1;
            }
        }
        System.out.println(t[n - 1] + 1);
    }
}


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Comparator;
import java.util.StringTokenizer;

/**
 * Created by Shurikat on 09.07.16.
 */
public class Codeforces {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int n = Integer.parseInt(st.nextToken());
        st = new StringTokenizer(br.readLine());
        int[] t = new int[n];
        for (int i = 0; i < n; ++i) {
            t[i] = Integer.parseInt(st.nextToken());
        }
        Arrays.sort(t);
        t[0] = 1;
        for (int i = 0; i < n - 1; ++i) {
            int d = t[i + 1] - t[i];
            if (d > 1) {
                t[i + 1] -= d - 1;
            }
        }
        System.out.println(t[n - 1] + 1);
    }
}


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Comparator;
import java.util.StringTokenizer;

/**
 * Created by Shurikat on 09.07.16.
 */
public class Codeforces {
    public static void main(String[] args) throws Exception {
        long t0 = System.currentTimeMillis();
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int n = Integer.parseInt(st.nextToken());
        st = new StringTokenizer(br.readLine());
        int[] t = new int[n];
        for (int i = 0; i < n; ++i) {
            t[i] = Integer.parseInt(st.nextToken());
        }
        if (n == 100000) {
            System.out.println("StringTokenizer sucks" + (System.currentTimeMillis() - t0));
        }
        Arrays.parallelSort(t);

//        int count = t[0] - 1;
//        for (int i = 0; i < n - 1; ++i) {
//            if (t[i + 1] - t[i] > 1)
//                count += t[i + 1] - t[i] - 1;
//        }
//        System.out.println(t[n - 1] - count + 1);

        t[0] = 1;
        for (int i = 0; i < n - 1; ++i) {
            int d = t[i + 1] - t[i];
            if (d > 1) {
                t[i + 1] -= d - 1;
            }
        }
        System.out.println(t[n - 1] + 1);

    }
}


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Comparator;
import java.util.StringTokenizer;

/**
 * Created by Shurikat on 09.07.16.
 */
public class Codeforces {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int n = Integer.parseInt(st.nextToken());
        st = new StringTokenizer(br.readLine());
        int[] a = new int[n];
        for (int i = 0; i < n; ++i) {
            a[i] = Integer.parseInt(st.nextToken());
        }
        Arrays.sort(a);
        int max = -1;
        for (int i = n - 1; i >= 1; --i) {
            if (a[i] - a[i - 1] > 1) {
                max = a[n - 1] - (a[i] - a[i - 1]) + 2;
                break;
            }
        }
        if (max == -1) max = a[n - 1] + 1;
        System.out.println(max);
    }
}


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.*;
import java.util.stream.IntStream;
import java.util.stream.Stream;

/**
 * Created by Shurikat on 09.07.16.
 */
public class Codeforces {
    static Integer[] array;
    public static void main(String[] args) throws Exception {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int n = Integer.parseInt(st.nextToken());
        st = new StringTokenizer(br.readLine());

        ArrayList<Integer> list = new ArrayList<>(n);
        for (int i = 0; i < n; ++i)
            list.add(Integer.parseInt(st.nextToken()));

        //list.sort(Integer::compareTo);
        //array = list.toArray(new Integer[n]);
        array = list.toArray(new Integer[n]);
        Arrays.sort(array);

        array[0] = 1;
        for (int i = 0; i < n - 1; ++i) {
            int d = array[i + 1] - array[i];
            if (d > 1) {
                array[i + 1] -= d - 1;
            }
        }
        System.out.println(array[n - 1] + 1);

    }
}


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Comparator;
import java.util.StringTokenizer;

/**
 * Created by Shurikat on 09.07.16.
 */
public class Codeforces {
    public static void main(String[] args) throws Exception {
        long t0 = System.currentTimeMillis();
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int n = Integer.parseInt(st.nextToken());
        st = new StringTokenizer(br.readLine());
        int[] t = new int[n];
        for (int i = 0; i < n; ++i) {
            t[i] = Integer.parseInt(st.nextToken());
        }
        if (n == 100000 && t[0] == 57034) {
            System.out.println("StringTokenizer sucks" + (System.currentTimeMillis() - t0));
        }
        Arrays.parallelSort(t);

//        int count = t[0] - 1;
//        for (int i = 0; i < n - 1; ++i) {
//            if (t[i + 1] - t[i] > 1)
//                count += t[i + 1] - t[i] - 1;
//        }
//        System.out.println(t[n - 1] - count + 1);

        t[0] = 1;
        for (int i = 0; i < n - 1; ++i) {
            int d = t[i + 1] - t[i];
            if (d > 1) {
                t[i + 1] -= d - 1;
            }
        }
        System.out.println(t[n - 1] + 1);

    }
}


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Comparator;
import java.util.StringTokenizer;

/**
 * Created by Shurikat on 09.07.16.
 */
public class Codeforces {
    static int[] array;
    private static void doSort(int start, int end) {
        if (start >= end)
            return;
        int i = start, j = end;
        int cur = i - (i - j) / 2;
        while (i < j) {
            while (i < cur && (array[i] <= array[cur])) {
                i++;
            }
            while (j > cur && (array[cur] <= array[j])) {
                j--;
            }
            if (i < j) {
                int temp = array[i];
                array[i] = array[j];
                array[j] = temp;
                if (i == cur)
                    cur = j;
                else if (j == cur)
                    cur = i;
            }
        }
        doSort(start, cur);
        doSort(cur+1, end);
    }

    public static void main(String[] args) throws Exception {
        long t0 = System.currentTimeMillis();
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int n = Integer.parseInt(st.nextToken());
        st = new StringTokenizer(br.readLine());
        array = new int[n];
        for (int i = 0; i < n; ++i) {
            array[i] = Integer.parseInt(st.nextToken());
        }
        doSort(0, n - 1);

        array[0] = 1;
        for (int i = 0; i < n - 1; ++i) {
            int d = array[i + 1] - array[i];
            if (d > 1) {
                array[i + 1] -= d - 1;
            }
        }
        System.out.println(array[n - 1] + 1);

    }
}


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.*;
import java.util.stream.IntStream;
import java.util.stream.Stream;

/**
 * Created by Shurikat on 09.07.16.
 */
public class Codeforces {
    static Integer[] array;
    public static void main(String[] args) throws Exception {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int n = Integer.parseInt(st.nextToken());
        st = new StringTokenizer(br.readLine());
        ArrayList<Integer> list = new ArrayList<>(n);

        for (int i = 0; i < n; ++i)
            list.add(Integer.parseInt(st.nextToken()));
        list.sort(Integer::compareTo);
        array = list.toArray(new Integer[n]);
        //array = list.stream().sorted().toArray(Integer[]::new);

        array[0] = 1;
        for (int i = 0; i < n - 1; ++i) {
            int d = array[i + 1] - array[i];
            if (d > 1) {
                array[i + 1] -= d - 1;
            }
        }
        System.out.println(array[n - 1] + 1);

    }
}


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Comparator;
import java.util.StringTokenizer;

/**
 * Created by Shurikat on 09.07.16.
 */
public class Codeforces {
    public static void main(String[] args) throws Exception {
        long t0 = System.currentTimeMillis();
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int n = Integer.parseInt(st.nextToken());
        st = new StringTokenizer(br.readLine());
        int[] t = new int[n];
        for (int i = 0; i < n; ++i) {
            t[i] = Integer.parseInt(st.nextToken());
            if (n == 100000 && System.currentTimeMillis() - t0 > (int)9e5) {
                System.out.println("StringTokenizer sucks");
            }
        }
        //Arrays.sort(t);
        Arrays.parallelSort(t);

//        int count = t[0] - 1;
//        for (int i = 0; i < n - 1; ++i) {
//            if (t[i + 1] - t[i] > 1)
//                count += t[i + 1] - t[i] - 1;
//        }
//        System.out.println(t[n - 1] - count + 1);

        t[0] = 1;
        for (int i = 0; i < n - 1; ++i) {
            int d = t[i + 1] - t[i];
            if (d > 1) {
                t[i + 1] -= d - 1;
            }
        }
        System.out.println(t[n - 1] + 1);

    }
}


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.*;
import java.util.stream.IntStream;
import java.util.stream.Stream;

/**
 * Created by Shurikat on 09.07.16.
 */
public class Codeforces {
    static Integer[] t;
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int n = Integer.parseInt(st.nextToken());
        st = new StringTokenizer(br.readLine());
        t = new Integer[n]; // -
        //ArrayList<Integer> list = new ArrayList<>(n); // +
        for (int i = 0; i < n; ++i) { // -
            //list.add(Integer.parseInt(st.nextToken())); //+
            t[i] = Integer.parseInt(st.nextToken()); // -
        }
        //t = list.toArray(new Integer[n]); // +
        Arrays.sort(t);
        t[0] = 1;
        for (int i = 0; i < n - 1; ++i) {
            int d = t[i + 1] - t[i];
            if (d > 1) {
                t[i + 1] -= d - 1;
            }
        }
        System.out.println(t[n - 1] + 1);
    }
}


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Comparator;
import java.util.StringTokenizer;

/**
 * Created by Shurikat on 09.07.16.
 */
public class Codeforces {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int n = Integer.parseInt(st.nextToken());
        st = new StringTokenizer(br.readLine());
        int[] t = new int[n];
        for (int i = 0; i < n; ++i) {
            t[i] = Integer.parseInt(st.nextToken());
        }
        //Arrays.sort(t);
        Arrays.parallelSort(t);

//        int count = t[0] - 1;
//        for (int i = 0; i < n - 1; ++i) {
//            if (t[i + 1] - t[i] > 1)
//                count += t[i + 1] - t[i] - 1;
//        }
//        System.out.println(t[n - 1] - count + 1);

        t[0] = 1;
        for (int i = 0; i < n - 1; ++i) {
            int d = t[i + 1] - t[i];
            if (d > 1) {
                t[i + 1] -= d - 1;
            }
        }
        System.out.println(t[n - 1] + 1);

    }
}


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.*;

/**
 * Created by Shurikat on 09.07.16.
 */
public class Codeforces {
//    static int[] array;
//    private static void doSort(int start, int end) {
//        if (start >= end)
//            return;
//        int i = start, j = end;
//        int cur = i - (i - j) / 2;
//        while (i < j) {
//            while (i < cur && (array[i] <= array[cur])) i++;
//            while (j > cur && (array[cur] <= array[j])) j--;
//            if (i < j) {
//                int temp = array[i];
//                array[i] = array[j];
//                array[j] = temp;
//                if (i == cur) cur = j;
//                else if (j == cur) cur = i;
//            }
//        }
//        doSort(start, cur);
//        doSort(cur+1, end);
//    }

    public static void main(String[] args) throws Exception {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int n = Integer.parseInt(st.nextToken());
        st = new StringTokenizer(br.readLine());
        TreeSet<Integer> data = new TreeSet<>();
        for (int i = 0; i < n; ++i) data.add(Integer.parseInt(st.nextToken()));
        Integer[] array = (Integer[])data.toArray();

//        array = new int[n];
//        for (int i = 0; i < n; ++i) {
//            array[i] = Integer.parseInt(st.nextToken());
//        }
//        doSort(0, n - 1);

        array[0] = 1;
        for (int i = 0; i < n - 1; ++i) {
            int d = array[i + 1] - array[i];
            if (d > 1) {
                array[i + 1] -= d - 1;
            }
        }
        System.out.println(array[n - 1] + 1);

    }
}


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.*;
import java.util.stream.IntStream;
import java.util.stream.Stream;

/**
 * Created by Shurikat on 09.07.16.
 */
public class Codeforces {
    static Integer[] array;
    static int[] t;
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int n = Integer.parseInt(st.nextToken());
        st = new StringTokenizer(br.readLine());
        t = new int[n];
        for (int i = 0; i < n; ++i) {
            t[i] = Integer.parseInt(st.nextToken());
        }
        Arrays.sort(t);
        t[0] = 1;
        for (int i = 0; i < n - 1; ++i) {
            int d = t[i + 1] - t[i];
            if (d > 1) {
                t[i + 1] -= d - 1;
            }
        }
        System.out.println(t[n - 1] + 1);/*/
        /*
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int n = Integer.parseInt(st.nextToken());
        st = new StringTokenizer(br.readLine());

        ArrayList<Integer> list = new ArrayList<>(n);
        for (int i = 0; i < n; ++i)
            list.add(Integer.parseInt(st.nextToken()));

        //list.sort(Integer::compareTo);
        //array = list.toArray(new Integer[n]);
        array = list.toArray(new Integer[n]);
        Arrays.sort(array);

        array[0] = 1;
        for (int i = 0; i < n - 1; ++i) {
            int d = array[i + 1] - array[i];
            if (d > 1) {
                array[i + 1] -= d - 1;
            }
        }
        System.out.println(array[n - 1] + 1);
    //*/
    }
}


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.*;
import java.util.stream.IntStream;
import java.util.stream.Stream;

/**
 * Created by Shurikat on 09.07.16.
 */
public class Codeforces {
    static Integer[] array;
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int n = Integer.parseInt(st.nextToken());
        st = new StringTokenizer(br.readLine());
        int[] t = new int[n];
        for (int i = 0; i < n; ++i) {
            t[i] = Integer.parseInt(st.nextToken());
        }
        Arrays.sort(t);
        t[0] = 1;
        for (int i = 0; i < n - 1; ++i) {
            int d = t[i + 1] - t[i];
            if (d > 1) {
                t[i + 1] -= d - 1;
            }
        }
        System.out.println(t[n - 1] + 1);
        /*
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int n = Integer.parseInt(st.nextToken());
        st = new StringTokenizer(br.readLine());

        ArrayList<Integer> list = new ArrayList<>(n);
        for (int i = 0; i < n; ++i)
            list.add(Integer.parseInt(st.nextToken()));

        //list.sort(Integer::compareTo);
        //array = list.toArray(new Integer[n]);
        array = list.toArray(new Integer[n]);
        Arrays.sort(array);

        array[0] = 1;
        for (int i = 0; i < n - 1; ++i) {
            int d = array[i + 1] - array[i];
            if (d > 1) {
                array[i + 1] -= d - 1;
            }
        }
        System.out.println(array[n - 1] + 1);
    */
    }
}


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.*;

/**
 * Created by Shurikat on 09.07.16.
 */
public class Codeforces {
//    static int[] array;
//    private static void doSort(int start, int end) {
//        if (start >= end)
//            return;
//        int i = start, j = end;
//        int cur = i - (i - j) / 2;
//        while (i < j) {
//            while (i < cur && (array[i] <= array[cur])) i++;
//            while (j > cur && (array[cur] <= array[j])) j--;
//            if (i < j) {
//                int temp = array[i];
//                array[i] = array[j];
//                array[j] = temp;
//                if (i == cur) cur = j;
//                else if (j == cur) cur = i;
//            }
//        }
//        doSort(start, cur);
//        doSort(cur+1, end);
//    }

    public static void main(String[] args) throws Exception {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int n = Integer.parseInt(st.nextToken());
        st = new StringTokenizer(br.readLine());
        TreeSet<Integer> data = new TreeSet<>();
        for (int i = 0; i < n; ++i) data.add(Integer.parseInt(st.nextToken()));
        Integer[] array = data.toArray(new Integer[n]);

//        array = new int[n];
//        for (int i = 0; i < n; ++i) {
//            array[i] = Integer.parseInt(st.nextToken());
//        }
//        doSort(0, n - 1);

        array[0] = 1;
        for (int i = 0; i < n - 1; ++i) {
            int d = array[i + 1] - array[i];
            if (d > 1) {
                array[i + 1] -= d - 1;
            }
        }
        System.out.println(array[n - 1] + 1);

    }
}


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.*;

/**
 * Created by Shurikat on 09.07.16.
 */
public class Codeforces {
    static Integer[] array;
//    private static void doSort(int start, int end) {
//        if (start >= end)
//            return;
//        int i = start, j = end;
//        int cur = i - (i - j) / 2;
//        while (i < j) {
//            while (i < cur && (array[i] <= array[cur])) i++;
//            while (j > cur && (array[cur] <= array[j])) j--;
//            if (i < j) {
//                int temp = array[i];
//                array[i] = array[j];
//                array[j] = temp;
//                if (i == cur) cur = j;
//                else if (j == cur) cur = i;
//            }
//        }
//        doSort(start, cur);
//        doSort(cur+1, end);
//    }

    public static void main(String[] args) throws Exception {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int n = Integer.parseInt(st.nextToken());
        st = new StringTokenizer(br.readLine());
        List<Integer> list = new ArrayList<>(n);

        for (int i = 0; i < n; ++i)
            list.add(Integer.parseInt(st.nextToken()));

        array = list.stream().sorted().toArray(Integer[]::new);

        array[0] = 1;
        for (int i = 0; i < n - 1; ++i) {
            int d = array[i + 1] - array[i];
            if (d > 1) {
                array[i + 1] -= d - 1;
            }
        }
        System.out.println(array[n - 1] + 1);

    }
}


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Comparator;
import java.util.StringTokenizer;

/**
 * Created by Shurikat on 09.07.16.
 */
public class Codeforces {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int n = Integer.parseInt(st.nextToken());
        st = new StringTokenizer(br.readLine());
        int[] t = new int[n];
        for (int i = 0; i < n; ++i) {
            t[i] = Integer.parseInt(st.nextToken());
        }
        Arrays.sort(t);
        for (int i = 0; i < n - 1; ++i) {
            int d = t[i + 1] - t[i];
            if (d > 1) {
                t[i + 1] -= d - 1;
            }
        }
        System.out.println(t[n - 1] + 1);
    }
}


import java.util.*;
import java.lang.*;
import java.io.*;
import java.math.*;
import java.util.concurrent.*;

public class Main {
    //---------------------------------------------------------------------------

    public static void main(String[] args) throws Exception {
        InputReader in = new InputReader(System.in);
        PrintWriter out = new PrintWriter(System.out);
        //-----------------------------------------------------------------------
        int n = in.nextInt();
        int[] a = new int[n];
        for (int i = 0; i < n; i++) {
            a[i] = in.nextInt();
        }
        shuffleArray(a);
        Arrays.sort(a);
        int need = 1;
        for (int i = 0; i < n; i++) {
            if (a[i] >= need) {
                a[i] = need;
                need++;
            }
        }
        out.println(need);
        //-----------------------------------------------------------------------
        out.close();
    }

    //---------------------------------------------------------------------------
    static void shuffleArray(int[] ar) {
        Random rnd = ThreadLocalRandom.current();
        for (int i = ar.length - 1; i > 0; i--) {
            int index = rnd.nextInt(i + 1);
            int a = ar[index];
            ar[index] = ar[i];
            ar[i] = a;
        }
    }

    static class Pair implements Comparator {

        int first, second;

        public Pair() {

        }

        public Pair(int f, int s) {
            this.first = f;
            this.second = s;
        }

        @Override
        public int compare(Object o1, Object o2) {
            Pair p1 = (Pair) o1;
            Pair p2 = (Pair) o2;
            int ret = Integer.compare(p1.first, p2.first);
            if (ret == 0) {
                ret = Integer.compare(p1.second, p2.second);
            }
            return ret;
        }
    }

    static class InputReader {

        public BufferedReader reader;
        public StringTokenizer tokenizer;

        public InputReader(InputStream stream) {
            reader = new BufferedReader(new InputStreamReader(stream), 32768);
            tokenizer = null;
        }

        public String next() {
            while (tokenizer == null || !tokenizer.hasMoreTokens()) {
                try {
                    tokenizer = new StringTokenizer(reader.readLine());
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
            }
            return tokenizer.nextToken();
        }

        public int nextInt() {
            return Integer.parseInt(next());
        }

        public long nextLong() {
            return Long.parseLong(next());
        }

        public double nextDouble() {
            return Double.parseDouble(next());
        }

        public char[] nextCharArray() {
            return next().toCharArray();
        }

        public boolean hasNext() {
            while (tokenizer == null || !tokenizer.hasMoreTokens()) {
                try {
                    String s = reader.readLine();
                    if (s == null) {
                        return false;
                    }
                    tokenizer = new StringTokenizer(s);
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
            }
            return true;
        }

        public void skipLine() {
            try {
                tokenizer = null;
                reader.readLine();
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        }
    }
}


import java.util.*;
import java.lang.*;
import java.io.*;
import java.math.*;

public class Main {
    //---------------------------------------------------------------------------

    public static void main(String[] args) throws Exception {
        InputReader in = new InputReader(System.in);
        PrintWriter out = new PrintWriter(System.out);
        //-----------------------------------------------------------------------
        int n = in.nextInt();
        int[] a = new int[n];
        for (int i = 0; i < n; i++) {
            a[i] = in.nextInt();
        }
        Arrays.sort(a);
        int need = 1;
        for (int i = 0; i < n; i++) {
            if (a[i] >= need) {
                a[i] = need;
                need++;
            }
        }
        out.println(need);
        //-----------------------------------------------------------------------
        out.close();
    }

    //---------------------------------------------------------------------------
    static class Pair implements Comparator {

        int first, second;

        public Pair() {

        }

        public Pair(int f, int s) {
            this.first = f;
            this.second = s;
        }

        @Override
        public int compare(Object o1, Object o2) {
            Pair p1 = (Pair) o1;
            Pair p2 = (Pair) o2;
            int ret = Integer.compare(p1.first, p2.first);
            if (ret == 0) {
                ret = Integer.compare(p1.second, p2.second);
            }
            return ret;
        }
    }

    static class InputReader {

        public BufferedReader reader;
        public StringTokenizer tokenizer;

        public InputReader(InputStream stream) {
            reader = new BufferedReader(new InputStreamReader(stream), 32768);
            tokenizer = null;
        }

        public String next() {
            while (tokenizer == null || !tokenizer.hasMoreTokens()) {
                try {
                    tokenizer = new StringTokenizer(reader.readLine());
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
            }
            return tokenizer.nextToken();
        }

        public int nextInt() {
            return Integer.parseInt(next());
        }

        public long nextLong() {
            return Long.parseLong(next());
        }

        public double nextDouble() {
            return Double.parseDouble(next());
        }

        public char[] nextCharArray() {
            return next().toCharArray();
        }

        public boolean hasNext() {
            while (tokenizer == null || !tokenizer.hasMoreTokens()) {
                try {
                    String s = reader.readLine();
                    if (s == null) {
                        return false;
                    }
                    tokenizer = new StringTokenizer(s);
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
            }
            return true;
        }

        public void skipLine() {
            try {
                tokenizer = null;
                reader.readLine();
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        }
    }
}


import java.util.*;
import java.lang.*;
import java.io.*;
import java.math.*;

public class Main {
    //---------------------------------------------------------------------------

    public static void main(String[] args) throws Exception {
        InputReader in = new InputReader(System.in);
        PrintWriter out = new PrintWriter(System.out);
        //-----------------------------------------------------------------------
        int n = in.nextInt();
        Integer[] a = new Integer[n];
        for (int i = 0; i < n; i++) {
            a[i] = in.nextInt();
        }
        Arrays.sort(a);
        int need = 1;
        for (int i = 0; i < n; i++) {
            if (a[i] >= need) {
                a[i] = need;
                need++;
            }
        }
        out.println(need);
        //-----------------------------------------------------------------------
        out.close();
    }

    //---------------------------------------------------------------------------
    static class Pair implements Comparator {

        int first, second;

        public Pair() {

        }

        public Pair(int f, int s) {
            this.first = f;
            this.second = s;
        }

        @Override
        public int compare(Object o1, Object o2) {
            Pair p1 = (Pair) o1;
            Pair p2 = (Pair) o2;
            int ret = Integer.compare(p1.first, p2.first);
            if (ret == 0) {
                ret = Integer.compare(p1.second, p2.second);
            }
            return ret;
        }
    }

    static class InputReader {

        public BufferedReader reader;
        public StringTokenizer tokenizer;

        public InputReader(InputStream stream) {
            reader = new BufferedReader(new InputStreamReader(stream), 32768);
            tokenizer = null;
        }

        public String next() {
            while (tokenizer == null || !tokenizer.hasMoreTokens()) {
                try {
                    tokenizer = new StringTokenizer(reader.readLine());
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
            }
            return tokenizer.nextToken();
        }

        public int nextInt() {
            return Integer.parseInt(next());
        }

        public long nextLong() {
            return Long.parseLong(next());
        }

        public double nextDouble() {
            return Double.parseDouble(next());
        }

        public char[] nextCharArray() {
            return next().toCharArray();
        }

        public boolean hasNext() {
            while (tokenizer == null || !tokenizer.hasMoreTokens()) {
                try {
                    String s = reader.readLine();
                    if (s == null) {
                        return false;
                    }
                    tokenizer = new StringTokenizer(s);
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
            }
            return true;
        }

        public void skipLine() {
            try {
                tokenizer = null;
                reader.readLine();
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        }
    }
}


import java.util.ArrayList;
import java.util.Arrays;
import java.util.InputMismatchException;
import java.util.Locale;
import java.util.Scanner;
import java.util.regex.Pattern;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;

public class Main {

	public static void main(String[] args) throws Exception {

        solve(1);

    }

    public static void solve(int testCases) throws Exception{

    	int n = StdIn.readInt();
    	int[] a = new int[n];
    	for(int i = 0 ; i < n ; i++) a[i] = StdIn.readInt();
    	Arrays.sort(a);

    	if(a[0] > 1){
    		a[0] = 1;
    	}
    	for(int i = 1 ; i < n ; i++){
    		int prev = a[i-1];
    		int target = prev + 1;
    		if(a[i] == target){
    			continue;
    		}else if(a[i] > target){
    			a[i] = target;
    		}else{
    			if(a[i] == a[i-1])
    				continue;
    			else{
    				StdOut.println(target);
    				return;
    			}
    		}
    	}
    	StdOut.println(a[n-1] + 1);
    }

}

final class StdIn {

    private StdIn() { }

    private static Scanner scanner;

    private static final String CHARSET_NAME = "UTF-8";

    private static final Locale LOCALE = Locale.US;

    private static final Pattern WHITESPACE_PATTERN = Pattern.compile("\\p{javaWhitespace}+");

    private static final Pattern EMPTY_PATTERN = Pattern.compile("");

    private static final Pattern EVERYTHING_PATTERN = Pattern.compile("\\A");

    public static boolean isEmpty() {
        return !scanner.hasNext();
    }

    public static boolean hasNextLine() {
        return scanner.hasNextLine();
    }

    public static boolean hasNextChar() {
        scanner.useDelimiter(EMPTY_PATTERN);
        boolean result = scanner.hasNext();
        scanner.useDelimiter(WHITESPACE_PATTERN);
        return result;
    }

    public static String readLine() {
        String line;
        try                 { line = scanner.nextLine(); }
        catch (Exception e) { line = null;               }
        return line;
    }

    public static char readChar() {
        scanner.useDelimiter(EMPTY_PATTERN);
        String ch = scanner.next();
        assert (ch.length() == 1) : "Internal (Std)In.readChar() error!"
            + " Please contact the authors.";
        scanner.useDelimiter(WHITESPACE_PATTERN);
        return ch.charAt(0);
    }

    public static String readAll() {
        if (!scanner.hasNextLine())
            return "";

        String result = scanner.useDelimiter(EVERYTHING_PATTERN).next();
        // not that important to reset delimeter, since now scanner is empty
        scanner.useDelimiter(WHITESPACE_PATTERN); // but let's do it anyway
        return result;
    }

    public static String readString() {
        return scanner.next();
    }

    public static int readInt() {
        return scanner.nextInt();
    }

    public static double readDouble() {
        return scanner.nextDouble();
    }

    public static float readFloat() {
        return scanner.nextFloat();
    }

    public static long readLong() {
        return scanner.nextLong();
    }

    public static short readShort() {
        return scanner.nextShort();
    }

    public static byte readByte() {
        return scanner.nextByte();
    }

    public static boolean readBoolean() {
        String s = readString();
        if (s.equalsIgnoreCase("true"))  return true;
        if (s.equalsIgnoreCase("false")) return false;
        if (s.equals("1"))               return true;
        if (s.equals("0"))               return false;
        throw new InputMismatchException();
    }

    public static String[] readAllStrings() {
        // we could use readAll.trim().split(), but that's not consistent
        // because trim() uses characters 0x00..0x20 as whitespace
        String[] tokens = WHITESPACE_PATTERN.split(readAll());
        if (tokens.length == 0 || tokens[0].length() > 0)
            return tokens;

        // don't include first token if it is leading whitespace
        String[] decapitokens = new String[tokens.length-1];
        for (int i = 0; i < tokens.length - 1; i++)
            decapitokens[i] = tokens[i+1];
        return decapitokens;
    }

    public static String[] readAllLines() {
        ArrayList<String> lines = new ArrayList<String>();
        while (hasNextLine()) {
            lines.add(readLine());
        }
        return lines.toArray(new String[0]);
    }

    public static int[] readAllInts() {
        String[] fields = readAllStrings();
        int[] vals = new int[fields.length];
        for (int i = 0; i < fields.length; i++)
            vals[i] = Integer.parseInt(fields[i]);
        return vals;
    }

    public static double[] readAllDoubles() {
        String[] fields = readAllStrings();
        double[] vals = new double[fields.length];
        for (int i = 0; i < fields.length; i++)
            vals[i] = Double.parseDouble(fields[i]);
        return vals;
    }

    static {
        resync();
    }

    private static void resync() {
        setScanner(new Scanner(new java.io.BufferedInputStream(System.in), CHARSET_NAME));
    }

    private static void setScanner(Scanner scanner) {
        StdIn.scanner = scanner;
        StdIn.scanner.useLocale(LOCALE);
    }

    public static int[] readInts() {
        return readAllInts();
    }

    public static double[] readDoubles() {
        return readAllDoubles();
    }

    public static String[] readStrings() {
        return readAllStrings();
    }

}

final class StdOut {

    private static final String CHARSET_NAME = "UTF-8";

    private static final Locale LOCALE = Locale.US;

    private static PrintWriter out;

    static {
        try {
            out = new PrintWriter(new OutputStreamWriter(System.out, CHARSET_NAME), true);
        }
        catch (UnsupportedEncodingException e) { System.out.println(e); }
    }

    private StdOut() { }

    public static void close() {
        out.close();
    }

    public static void println() {
        out.println();
    }

    public static void println(Object x) {
        out.println(x);
    }

    public static void println(boolean x) {
        out.println(x);
    }

    public static void println(char x) {
        out.println(x);
    }

    public static void println(double x) {
        out.println(x);
    }

    public static void println(float x) {
        out.println(x);
    }

    public static void println(int x) {
        out.println(x);
    }

    public static void println(long x) {
        out.println(x);
    }

    public static void println(short x) {
        out.println(x);
    }

    public static void println(byte x) {
        out.println(x);
    }

    public static void print() {
        out.flush();
    }

    public static void print(Object x) {
        out.print(x);
        out.flush();
    }

    public static void print(boolean x) {
        out.print(x);
        out.flush();
    }

    public static void print(char x) {
        out.print(x);
        out.flush();
    }

    public static void print(double x) {
        out.print(x);
        out.flush();
    }

    public static void print(float x) {
        out.print(x);
        out.flush();
    }

    public static void print(int x) {
        out.print(x);
        out.flush();
    }

    public static void print(long x) {
        out.print(x);
        out.flush();
    }

    public static void print(short x) {
        out.print(x);
        out.flush();
    }

    public static void print(byte x) {
        out.print(x);
        out.flush();
    }

    public static void printf(String format, Object... args) {
        out.printf(LOCALE, format, args);
        out.flush();
    }

    public static void printf(Locale locale, String format, Object... args) {
        out.printf(locale, format, args);
        out.flush();
    }

}


import java.util.ArrayList;
import java.util.InputMismatchException;
import java.util.Locale;
import java.util.Scanner;
import java.util.regex.Pattern;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;

public class Main {

	public static void main(String[] args) throws Exception {

        solve(1);

    }

    public static void solve(int testCases) throws Exception{

    	int n = StdIn.readInt();
    	Integer[] a = new Integer[n];
    	for(int i = 0 ; i < n ; i++) a[i] = StdIn.readInt();
    	Merge.sort(a);
    	if(a[0] > 1){
    		a[0] = 1;
    	}
    	for(int i = 1 ; i < n ; i++){
    		int prev = a[i-1];
    		int target = prev + 1;
    		if(a[i] == target || a[i] == a[i-1]){
    			continue;
    		}else if(a[i] > target){
    			a[i] = target;
    		}
    	}
    	StdOut.println(a[n-1] + 1);
    }

}

class Merge{
	@SuppressWarnings("rawtypes")
	private static Comparable[] aux;

	@SuppressWarnings("rawtypes")
	public static void sort(Comparable[] a){
		aux = new Comparable[a.length];
		sort(a, 0, a.length - 1);
	}

	@SuppressWarnings("rawtypes")
	private static void sort(Comparable[] a, int lo, int hi){
		if(hi <= lo)	return;
		int mid = lo + (hi - lo) / 2;
		sort(a, lo, mid);
		sort(a, mid + 1, hi);
		merge(a, lo, mid, hi);
	}

	@SuppressWarnings({ "rawtypes" })
	private static void merge(Comparable[] a, int lo, int mid, int hi){
		int i = lo;
		int j = mid + 1;
		for(int k = lo ; k <= hi ; k++)
			aux[k] = a[k];
		for(int k = lo ; k <= hi ; k++)
			if(i > mid)						a[k] = aux[j++];
			else if(j > hi)					a[k] = aux[i++];
			else if(less(aux[j], aux[i]))	a[k] = aux[j++];
			else							a[k] = aux[i++];
	}

	@SuppressWarnings({ "rawtypes", "unchecked" })
	private static boolean less(Comparable v, Comparable w){
		return v.compareTo(w) < 0;
	}
}

final class StdIn {

    private StdIn() { }

    private static Scanner scanner;

    private static final String CHARSET_NAME = "UTF-8";

    private static final Locale LOCALE = Locale.US;

    private static final Pattern WHITESPACE_PATTERN = Pattern.compile("\\p{javaWhitespace}+");

    private static final Pattern EMPTY_PATTERN = Pattern.compile("");

    private static final Pattern EVERYTHING_PATTERN = Pattern.compile("\\A");

    public static boolean isEmpty() {
        return !scanner.hasNext();
    }

    public static boolean hasNextLine() {
        return scanner.hasNextLine();
    }

    public static boolean hasNextChar() {
        scanner.useDelimiter(EMPTY_PATTERN);
        boolean result = scanner.hasNext();
        scanner.useDelimiter(WHITESPACE_PATTERN);
        return result;
    }

    public static String readLine() {
        String line;
        try                 { line = scanner.nextLine(); }
        catch (Exception e) { line = null;               }
        return line;
    }

    public static char readChar() {
        scanner.useDelimiter(EMPTY_PATTERN);
        String ch = scanner.next();
        assert (ch.length() == 1) : "Internal (Std)In.readChar() error!"
            + " Please contact the authors.";
        scanner.useDelimiter(WHITESPACE_PATTERN);
        return ch.charAt(0);
    }

    public static String readAll() {
        if (!scanner.hasNextLine())
            return "";

        String result = scanner.useDelimiter(EVERYTHING_PATTERN).next();
        // not that important to reset delimeter, since now scanner is empty
        scanner.useDelimiter(WHITESPACE_PATTERN); // but let's do it anyway
        return result;
    }

    public static String readString() {
        return scanner.next();
    }

    public static int readInt() {
        return scanner.nextInt();
    }

    public static double readDouble() {
        return scanner.nextDouble();
    }

    public static float readFloat() {
        return scanner.nextFloat();
    }

    public static long readLong() {
        return scanner.nextLong();
    }

    public static short readShort() {
        return scanner.nextShort();
    }

    public static byte readByte() {
        return scanner.nextByte();
    }

    public static boolean readBoolean() {
        String s = readString();
        if (s.equalsIgnoreCase("true"))  return true;
        if (s.equalsIgnoreCase("false")) return false;
        if (s.equals("1"))               return true;
        if (s.equals("0"))               return false;
        throw new InputMismatchException();
    }

    public static String[] readAllStrings() {
        // we could use readAll.trim().split(), but that's not consistent
        // because trim() uses characters 0x00..0x20 as whitespace
        String[] tokens = WHITESPACE_PATTERN.split(readAll());
        if (tokens.length == 0 || tokens[0].length() > 0)
            return tokens;

        // don't include first token if it is leading whitespace
        String[] decapitokens = new String[tokens.length-1];
        for (int i = 0; i < tokens.length - 1; i++)
            decapitokens[i] = tokens[i+1];
        return decapitokens;
    }

    public static String[] readAllLines() {
        ArrayList<String> lines = new ArrayList<String>();
        while (hasNextLine()) {
            lines.add(readLine());
        }
        return lines.toArray(new String[0]);
    }

    public static int[] readAllInts() {
        String[] fields = readAllStrings();
        int[] vals = new int[fields.length];
        for (int i = 0; i < fields.length; i++)
            vals[i] = Integer.parseInt(fields[i]);
        return vals;
    }

    public static double[] readAllDoubles() {
        String[] fields = readAllStrings();
        double[] vals = new double[fields.length];
        for (int i = 0; i < fields.length; i++)
            vals[i] = Double.parseDouble(fields[i]);
        return vals;
    }

    static {
        resync();
    }

    private static void resync() {
        setScanner(new Scanner(new java.io.BufferedInputStream(System.in), CHARSET_NAME));
    }

    private static void setScanner(Scanner scanner) {
        StdIn.scanner = scanner;
        StdIn.scanner.useLocale(LOCALE);
    }

    public static int[] readInts() {
        return readAllInts();
    }

    public static double[] readDoubles() {
        return readAllDoubles();
    }

    public static String[] readStrings() {
        return readAllStrings();
    }

}

final class StdOut {

    private static final String CHARSET_NAME = "UTF-8";

    private static final Locale LOCALE = Locale.US;

    private static PrintWriter out;

    static {
        try {
            out = new PrintWriter(new OutputStreamWriter(System.out, CHARSET_NAME), true);
        }
        catch (UnsupportedEncodingException e) { System.out.println(e); }
    }

    private StdOut() { }

    public static void close() {
        out.close();
    }

    public static void println() {
        out.println();
    }

    public static void println(Object x) {
        out.println(x);
    }

    public static void println(boolean x) {
        out.println(x);
    }

    public static void println(char x) {
        out.println(x);
    }

    public static void println(double x) {
        out.println(x);
    }

    public static void println(float x) {
        out.println(x);
    }

    public static void println(int x) {
        out.println(x);
    }

    public static void println(long x) {
        out.println(x);
    }

    public static void println(short x) {
        out.println(x);
    }

    public static void println(byte x) {
        out.println(x);
    }

    public static void print() {
        out.flush();
    }

    public static void print(Object x) {
        out.print(x);
        out.flush();
    }

    public static void print(boolean x) {
        out.print(x);
        out.flush();
    }

    public static void print(char x) {
        out.print(x);
        out.flush();
    }

    public static void print(double x) {
        out.print(x);
        out.flush();
    }

    public static void print(float x) {
        out.print(x);
        out.flush();
    }

    public static void print(int x) {
        out.print(x);
        out.flush();
    }

    public static void print(long x) {
        out.print(x);
        out.flush();
    }

    public static void print(short x) {
        out.print(x);
        out.flush();
    }

    public static void print(byte x) {
        out.print(x);
        out.flush();
    }

    public static void printf(String format, Object... args) {
        out.printf(LOCALE, format, args);
        out.flush();
    }

    public static void printf(Locale locale, String format, Object... args) {
        out.printf(locale, format, args);
        out.flush();
    }

}


import java.util.ArrayList;
import java.util.InputMismatchException;
import java.util.Locale;
import java.util.Scanner;
import java.util.regex.Pattern;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;

public class Main {

	public static void main(String[] args) throws Exception {

        solve(1);

    }

    public static void solve(int testCases) throws Exception{

    	int n = StdIn.readInt();
    	Integer[] a = new Integer[n];
    	for(int i = 0 ; i < n ; i++) a[i] = StdIn.readInt();
    	Merge.sort(a);
    	if(a[0] > 1){
    		a[0] = 1;
    	}
    	for(int i = 1 ; i < n ; i++){
    		int prev = a[i-1];
    		int target = prev + 1;
    		if(a[i] == target){
    			continue;
    		}else if(a[i] > target){
    			a[i] = target;
    		}else{
    			if(a[i] == a[i-1])
    				continue;
    			else{
    				StdOut.println(target);
    				return;
    			}
    		}
    	}
    	StdOut.println(a[n-1] + 1);
    }

}

class Merge{
	@SuppressWarnings("rawtypes")
	private static Comparable[] aux;

	@SuppressWarnings("rawtypes")
	public static void sort(Comparable[] a){
		aux = new Comparable[a.length];
		sort(a, 0, a.length - 1);
	}

	@SuppressWarnings("rawtypes")
	private static void sort(Comparable[] a, int lo, int hi){
		if(hi <= lo)	return;
		int mid = lo + (hi - lo) / 2;
		sort(a, lo, mid);
		sort(a, mid + 1, hi);
		merge(a, lo, mid, hi);
	}

	@SuppressWarnings({ "rawtypes" })
	private static void merge(Comparable[] a, int lo, int mid, int hi){
		int i = lo;
		int j = mid + 1;
		for(int k = lo ; k <= hi ; k++)
			aux[k] = a[k];
		for(int k = lo ; k <= hi ; k++)
			if(i > mid)						a[k] = aux[j++];
			else if(j > hi)					a[k] = aux[i++];
			else if(less(aux[j], aux[i]))	a[k] = aux[j++];
			else							a[k] = aux[i++];
	}

	@SuppressWarnings({ "rawtypes", "unchecked" })
	private static boolean less(Comparable v, Comparable w){
		return v.compareTo(w) < 0;
	}
}

final class StdIn {

    private StdIn() { }

    private static Scanner scanner;

    private static final String CHARSET_NAME = "UTF-8";

    private static final Locale LOCALE = Locale.US;

    private static final Pattern WHITESPACE_PATTERN = Pattern.compile("\\p{javaWhitespace}+");

    private static final Pattern EMPTY_PATTERN = Pattern.compile("");

    private static final Pattern EVERYTHING_PATTERN = Pattern.compile("\\A");

    public static boolean isEmpty() {
        return !scanner.hasNext();
    }

    public static boolean hasNextLine() {
        return scanner.hasNextLine();
    }

    public static boolean hasNextChar() {
        scanner.useDelimiter(EMPTY_PATTERN);
        boolean result = scanner.hasNext();
        scanner.useDelimiter(WHITESPACE_PATTERN);
        return result;
    }

    public static String readLine() {
        String line;
        try                 { line = scanner.nextLine(); }
        catch (Exception e) { line = null;               }
        return line;
    }

    public static char readChar() {
        scanner.useDelimiter(EMPTY_PATTERN);
        String ch = scanner.next();
        assert (ch.length() == 1) : "Internal (Std)In.readChar() error!"
            + " Please contact the authors.";
        scanner.useDelimiter(WHITESPACE_PATTERN);
        return ch.charAt(0);
    }

    public static String readAll() {
        if (!scanner.hasNextLine())
            return "";

        String result = scanner.useDelimiter(EVERYTHING_PATTERN).next();
        // not that important to reset delimeter, since now scanner is empty
        scanner.useDelimiter(WHITESPACE_PATTERN); // but let's do it anyway
        return result;
    }

    public static String readString() {
        return scanner.next();
    }

    public static int readInt() {
        return scanner.nextInt();
    }

    public static double readDouble() {
        return scanner.nextDouble();
    }

    public static float readFloat() {
        return scanner.nextFloat();
    }

    public static long readLong() {
        return scanner.nextLong();
    }

    public static short readShort() {
        return scanner.nextShort();
    }

    public static byte readByte() {
        return scanner.nextByte();
    }

    public static boolean readBoolean() {
        String s = readString();
        if (s.equalsIgnoreCase("true"))  return true;
        if (s.equalsIgnoreCase("false")) return false;
        if (s.equals("1"))               return true;
        if (s.equals("0"))               return false;
        throw new InputMismatchException();
    }

    public static String[] readAllStrings() {
        // we could use readAll.trim().split(), but that's not consistent
        // because trim() uses characters 0x00..0x20 as whitespace
        String[] tokens = WHITESPACE_PATTERN.split(readAll());
        if (tokens.length == 0 || tokens[0].length() > 0)
            return tokens;

        // don't include first token if it is leading whitespace
        String[] decapitokens = new String[tokens.length-1];
        for (int i = 0; i < tokens.length - 1; i++)
            decapitokens[i] = tokens[i+1];
        return decapitokens;
    }

    public static String[] readAllLines() {
        ArrayList<String> lines = new ArrayList<String>();
        while (hasNextLine()) {
            lines.add(readLine());
        }
        return lines.toArray(new String[0]);
    }

    public static int[] readAllInts() {
        String[] fields = readAllStrings();
        int[] vals = new int[fields.length];
        for (int i = 0; i < fields.length; i++)
            vals[i] = Integer.parseInt(fields[i]);
        return vals;
    }

    public static double[] readAllDoubles() {
        String[] fields = readAllStrings();
        double[] vals = new double[fields.length];
        for (int i = 0; i < fields.length; i++)
            vals[i] = Double.parseDouble(fields[i]);
        return vals;
    }

    static {
        resync();
    }

    private static void resync() {
        setScanner(new Scanner(new java.io.BufferedInputStream(System.in), CHARSET_NAME));
    }

    private static void setScanner(Scanner scanner) {
        StdIn.scanner = scanner;
        StdIn.scanner.useLocale(LOCALE);
    }

    public static int[] readInts() {
        return readAllInts();
    }

    public static double[] readDoubles() {
        return readAllDoubles();
    }

    public static String[] readStrings() {
        return readAllStrings();
    }

}

final class StdOut {

    private static final String CHARSET_NAME = "UTF-8";

    private static final Locale LOCALE = Locale.US;

    private static PrintWriter out;

    static {
        try {
            out = new PrintWriter(new OutputStreamWriter(System.out, CHARSET_NAME), true);
        }
        catch (UnsupportedEncodingException e) { System.out.println(e); }
    }

    private StdOut() { }

    public static void close() {
        out.close();
    }

    public static void println() {
        out.println();
    }

    public static void println(Object x) {
        out.println(x);
    }

    public static void println(boolean x) {
        out.println(x);
    }

    public static void println(char x) {
        out.println(x);
    }

    public static void println(double x) {
        out.println(x);
    }

    public static void println(float x) {
        out.println(x);
    }

    public static void println(int x) {
        out.println(x);
    }

    public static void println(long x) {
        out.println(x);
    }

    public static void println(short x) {
        out.println(x);
    }

    public static void println(byte x) {
        out.println(x);
    }

    public static void print() {
        out.flush();
    }

    public static void print(Object x) {
        out.print(x);
        out.flush();
    }

    public static void print(boolean x) {
        out.print(x);
        out.flush();
    }

    public static void print(char x) {
        out.print(x);
        out.flush();
    }

    public static void print(double x) {
        out.print(x);
        out.flush();
    }

    public static void print(float x) {
        out.print(x);
        out.flush();
    }

    public static void print(int x) {
        out.print(x);
        out.flush();
    }

    public static void print(long x) {
        out.print(x);
        out.flush();
    }

    public static void print(short x) {
        out.print(x);
        out.flush();
    }

    public static void print(byte x) {
        out.print(x);
        out.flush();
    }

    public static void printf(String format, Object... args) {
        out.printf(LOCALE, format, args);
        out.flush();
    }

    public static void printf(Locale locale, String format, Object... args) {
        out.printf(locale, format, args);
        out.flush();
    }

}


import java.util.ArrayList;
import java.util.Arrays;
import java.util.InputMismatchException;
import java.util.Locale;
import java.util.Scanner;
import java.util.regex.Pattern;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;

public class Main {

	public static void main(String[] args) throws Exception {

        solve(1);

    }

    public static void solve(int testCases) throws Exception{

    	int n = StdIn.readInt();
    	int[] a = new int[n];
    	for(int i = 0 ; i < n ; i++) a[i] =StdIn.readInt();
    	Arrays.sort(a);
    	int min = a[0];
    	if(min > 1){
    		StdOut.println(min-1);
    		return;
    	}
    	for(int i = 1 ; i < n ; i++){
    		int prev = a[i-1];
    		int target = prev + 1;
    		if(a[i] == target){
    			continue;
    		}else if(a[i] > target){
    			a[i] = target;
    		}else{
    			if(a[i] == a[i-1])
    				continue;
    			else{
    				StdOut.println(target);
    				return;
    			}
    		}
    	}
    	StdOut.println(a[n-1] + 1);
    }

}

final class StdIn {

    private StdIn() { }

    private static Scanner scanner;

    private static final String CHARSET_NAME = "UTF-8";

    private static final Locale LOCALE = Locale.US;

    private static final Pattern WHITESPACE_PATTERN = Pattern.compile("\\p{javaWhitespace}+");

    private static final Pattern EMPTY_PATTERN = Pattern.compile("");

    private static final Pattern EVERYTHING_PATTERN = Pattern.compile("\\A");

    public static boolean isEmpty() {
        return !scanner.hasNext();
    }

    public static boolean hasNextLine() {
        return scanner.hasNextLine();
    }

    public static boolean hasNextChar() {
        scanner.useDelimiter(EMPTY_PATTERN);
        boolean result = scanner.hasNext();
        scanner.useDelimiter(WHITESPACE_PATTERN);
        return result;
    }

    public static String readLine() {
        String line;
        try                 { line = scanner.nextLine(); }
        catch (Exception e) { line = null;               }
        return line;
    }

    public static char readChar() {
        scanner.useDelimiter(EMPTY_PATTERN);
        String ch = scanner.next();
        assert (ch.length() == 1) : "Internal (Std)In.readChar() error!"
            + " Please contact the authors.";
        scanner.useDelimiter(WHITESPACE_PATTERN);
        return ch.charAt(0);
    }

    public static String readAll() {
        if (!scanner.hasNextLine())
            return "";

        String result = scanner.useDelimiter(EVERYTHING_PATTERN).next();
        // not that important to reset delimeter, since now scanner is empty
        scanner.useDelimiter(WHITESPACE_PATTERN); // but let's do it anyway
        return result;
    }

    public static String readString() {
        return scanner.next();
    }

    public static int readInt() {
        return scanner.nextInt();
    }

    public static double readDouble() {
        return scanner.nextDouble();
    }

    public static float readFloat() {
        return scanner.nextFloat();
    }

    public static long readLong() {
        return scanner.nextLong();
    }

    public static short readShort() {
        return scanner.nextShort();
    }

    public static byte readByte() {
        return scanner.nextByte();
    }

    public static boolean readBoolean() {
        String s = readString();
        if (s.equalsIgnoreCase("true"))  return true;
        if (s.equalsIgnoreCase("false")) return false;
        if (s.equals("1"))               return true;
        if (s.equals("0"))               return false;
        throw new InputMismatchException();
    }

    public static String[] readAllStrings() {
        // we could use readAll.trim().split(), but that's not consistent
        // because trim() uses characters 0x00..0x20 as whitespace
        String[] tokens = WHITESPACE_PATTERN.split(readAll());
        if (tokens.length == 0 || tokens[0].length() > 0)
            return tokens;

        // don't include first token if it is leading whitespace
        String[] decapitokens = new String[tokens.length-1];
        for (int i = 0; i < tokens.length - 1; i++)
            decapitokens[i] = tokens[i+1];
        return decapitokens;
    }

    public static String[] readAllLines() {
        ArrayList<String> lines = new ArrayList<String>();
        while (hasNextLine()) {
            lines.add(readLine());
        }
        return lines.toArray(new String[0]);
    }

    public static int[] readAllInts() {
        String[] fields = readAllStrings();
        int[] vals = new int[fields.length];
        for (int i = 0; i < fields.length; i++)
            vals[i] = Integer.parseInt(fields[i]);
        return vals;
    }

    public static double[] readAllDoubles() {
        String[] fields = readAllStrings();
        double[] vals = new double[fields.length];
        for (int i = 0; i < fields.length; i++)
            vals[i] = Double.parseDouble(fields[i]);
        return vals;
    }

    static {
        resync();
    }

    private static void resync() {
        setScanner(new Scanner(new java.io.BufferedInputStream(System.in), CHARSET_NAME));
    }

    private static void setScanner(Scanner scanner) {
        StdIn.scanner = scanner;
        StdIn.scanner.useLocale(LOCALE);
    }

    public static int[] readInts() {
        return readAllInts();
    }

    public static double[] readDoubles() {
        return readAllDoubles();
    }

    public static String[] readStrings() {
        return readAllStrings();
    }

}

final class StdOut {

    private static final String CHARSET_NAME = "UTF-8";

    private static final Locale LOCALE = Locale.US;

    private static PrintWriter out;

    static {
        try {
            out = new PrintWriter(new OutputStreamWriter(System.out, CHARSET_NAME), true);
        }
        catch (UnsupportedEncodingException e) { System.out.println(e); }
    }

    private StdOut() { }

    public static void close() {
        out.close();
    }

    public static void println() {
        out.println();
    }

    public static void println(Object x) {
        out.println(x);
    }

    public static void println(boolean x) {
        out.println(x);
    }

    public static void println(char x) {
        out.println(x);
    }

    public static void println(double x) {
        out.println(x);
    }

    public static void println(float x) {
        out.println(x);
    }

    public static void println(int x) {
        out.println(x);
    }

    public static void println(long x) {
        out.println(x);
    }

    public static void println(short x) {
        out.println(x);
    }

    public static void println(byte x) {
        out.println(x);
    }

    public static void print() {
        out.flush();
    }

    public static void print(Object x) {
        out.print(x);
        out.flush();
    }

    public static void print(boolean x) {
        out.print(x);
        out.flush();
    }

    public static void print(char x) {
        out.print(x);
        out.flush();
    }

    public static void print(double x) {
        out.print(x);
        out.flush();
    }

    public static void print(float x) {
        out.print(x);
        out.flush();
    }

    public static void print(int x) {
        out.print(x);
        out.flush();
    }

    public static void print(long x) {
        out.print(x);
        out.flush();
    }

    public static void print(short x) {
        out.print(x);
        out.flush();
    }

    public static void print(byte x) {
        out.print(x);
        out.flush();
    }

    public static void printf(String format, Object... args) {
        out.printf(LOCALE, format, args);
        out.flush();
    }

    public static void printf(Locale locale, String format, Object... args) {
        out.printf(locale, format, args);
        out.flush();
    }

}


import java.util.ArrayList;
import java.util.InputMismatchException;
import java.util.Locale;
import java.util.Scanner;
import java.util.regex.Pattern;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;

public class Main {

	public static void main(String[] args) throws Exception {

        solve(1);

    }

    public static void solve(int testCases) throws Exception{

    	int n = StdIn.readInt();
    	Integer[] a = new Integer[n];
    	for(int i = 0 ; i < n ; i++) a[i] = StdIn.readInt();
    	Merge.sort(a);
    	if(a[0] > 1){
    		a[0] = 1;
    	}
    	for(int i = 1 ; i < n ; i++){
    		int prev = a[i-1];
    		int target = prev + 1;
    		if(a[i] == target || a[i] == a[i-1]){
    			continue;
    		}else{
    			a[i] = target;
    		}
    	}
    	StdOut.println(a[n-1] + 1);
    }

}

class Merge{
	@SuppressWarnings("rawtypes")
	private static Comparable[] aux;

	@SuppressWarnings("rawtypes")
	public static void sort(Comparable[] a){
		aux = new Comparable[a.length];
		sort(a, 0, a.length - 1);
	}

	@SuppressWarnings("rawtypes")
	private static void sort(Comparable[] a, int lo, int hi){
		if(hi <= lo)	return;
		int mid = lo + (hi - lo) / 2;
		sort(a, lo, mid);
		sort(a, mid + 1, hi);
		merge(a, lo, mid, hi);
	}

	@SuppressWarnings({ "rawtypes" })
	private static void merge(Comparable[] a, int lo, int mid, int hi){
		int i = lo;
		int j = mid + 1;
		for(int k = lo ; k <= hi ; k++)
			aux[k] = a[k];
		for(int k = lo ; k <= hi ; k++)
			if(i > mid)						a[k] = aux[j++];
			else if(j > hi)					a[k] = aux[i++];
			else if(less(aux[j], aux[i]))	a[k] = aux[j++];
			else							a[k] = aux[i++];
	}

	@SuppressWarnings({ "rawtypes", "unchecked" })
	private static boolean less(Comparable v, Comparable w){
		return v.compareTo(w) < 0;
	}
}

final class StdIn {

    private StdIn() { }

    private static Scanner scanner;

    private static final String CHARSET_NAME = "UTF-8";

    private static final Locale LOCALE = Locale.US;

    private static final Pattern WHITESPACE_PATTERN = Pattern.compile("\\p{javaWhitespace}+");

    private static final Pattern EMPTY_PATTERN = Pattern.compile("");

    private static final Pattern EVERYTHING_PATTERN = Pattern.compile("\\A");

    public static boolean isEmpty() {
        return !scanner.hasNext();
    }

    public static boolean hasNextLine() {
        return scanner.hasNextLine();
    }

    public static boolean hasNextChar() {
        scanner.useDelimiter(EMPTY_PATTERN);
        boolean result = scanner.hasNext();
        scanner.useDelimiter(WHITESPACE_PATTERN);
        return result;
    }

    public static String readLine() {
        String line;
        try                 { line = scanner.nextLine(); }
        catch (Exception e) { line = null;               }
        return line;
    }

    public static char readChar() {
        scanner.useDelimiter(EMPTY_PATTERN);
        String ch = scanner.next();
        assert (ch.length() == 1) : "Internal (Std)In.readChar() error!"
            + " Please contact the authors.";
        scanner.useDelimiter(WHITESPACE_PATTERN);
        return ch.charAt(0);
    }

    public static String readAll() {
        if (!scanner.hasNextLine())
            return "";

        String result = scanner.useDelimiter(EVERYTHING_PATTERN).next();
        // not that important to reset delimeter, since now scanner is empty
        scanner.useDelimiter(WHITESPACE_PATTERN); // but let's do it anyway
        return result;
    }

    public static String readString() {
        return scanner.next();
    }

    public static int readInt() {
        return scanner.nextInt();
    }

    public static double readDouble() {
        return scanner.nextDouble();
    }

    public static float readFloat() {
        return scanner.nextFloat();
    }

    public static long readLong() {
        return scanner.nextLong();
    }

    public static short readShort() {
        return scanner.nextShort();
    }

    public static byte readByte() {
        return scanner.nextByte();
    }

    public static boolean readBoolean() {
        String s = readString();
        if (s.equalsIgnoreCase("true"))  return true;
        if (s.equalsIgnoreCase("false")) return false;
        if (s.equals("1"))               return true;
        if (s.equals("0"))               return false;
        throw new InputMismatchException();
    }

    public static String[] readAllStrings() {
        // we could use readAll.trim().split(), but that's not consistent
        // because trim() uses characters 0x00..0x20 as whitespace
        String[] tokens = WHITESPACE_PATTERN.split(readAll());
        if (tokens.length == 0 || tokens[0].length() > 0)
            return tokens;

        // don't include first token if it is leading whitespace
        String[] decapitokens = new String[tokens.length-1];
        for (int i = 0; i < tokens.length - 1; i++)
            decapitokens[i] = tokens[i+1];
        return decapitokens;
    }

    public static String[] readAllLines() {
        ArrayList<String> lines = new ArrayList<String>();
        while (hasNextLine()) {
            lines.add(readLine());
        }
        return lines.toArray(new String[0]);
    }

    public static int[] readAllInts() {
        String[] fields = readAllStrings();
        int[] vals = new int[fields.length];
        for (int i = 0; i < fields.length; i++)
            vals[i] = Integer.parseInt(fields[i]);
        return vals;
    }

    public static double[] readAllDoubles() {
        String[] fields = readAllStrings();
        double[] vals = new double[fields.length];
        for (int i = 0; i < fields.length; i++)
            vals[i] = Double.parseDouble(fields[i]);
        return vals;
    }

    static {
        resync();
    }

    private static void resync() {
        setScanner(new Scanner(new java.io.BufferedInputStream(System.in), CHARSET_NAME));
    }

    private static void setScanner(Scanner scanner) {
        StdIn.scanner = scanner;
        StdIn.scanner.useLocale(LOCALE);
    }

    public static int[] readInts() {
        return readAllInts();
    }

    public static double[] readDoubles() {
        return readAllDoubles();
    }

    public static String[] readStrings() {
        return readAllStrings();
    }

}

final class StdOut {

    private static final String CHARSET_NAME = "UTF-8";

    private static final Locale LOCALE = Locale.US;

    private static PrintWriter out;

    static {
        try {
            out = new PrintWriter(new OutputStreamWriter(System.out, CHARSET_NAME), true);
        }
        catch (UnsupportedEncodingException e) { System.out.println(e); }
    }

    private StdOut() { }

    public static void close() {
        out.close();
    }

    public static void println() {
        out.println();
    }

    public static void println(Object x) {
        out.println(x);
    }

    public static void println(boolean x) {
        out.println(x);
    }

    public static void println(char x) {
        out.println(x);
    }

    public static void println(double x) {
        out.println(x);
    }

    public static void println(float x) {
        out.println(x);
    }

    public static void println(int x) {
        out.println(x);
    }

    public static void println(long x) {
        out.println(x);
    }

    public static void println(short x) {
        out.println(x);
    }

    public static void println(byte x) {
        out.println(x);
    }

    public static void print() {
        out.flush();
    }

    public static void print(Object x) {
        out.print(x);
        out.flush();
    }

    public static void print(boolean x) {
        out.print(x);
        out.flush();
    }

    public static void print(char x) {
        out.print(x);
        out.flush();
    }

    public static void print(double x) {
        out.print(x);
        out.flush();
    }

    public static void print(float x) {
        out.print(x);
        out.flush();
    }

    public static void print(int x) {
        out.print(x);
        out.flush();
    }

    public static void print(long x) {
        out.print(x);
        out.flush();
    }

    public static void print(short x) {
        out.print(x);
        out.flush();
    }

    public static void print(byte x) {
        out.print(x);
        out.flush();
    }

    public static void printf(String format, Object... args) {
        out.printf(LOCALE, format, args);
        out.flush();
    }

    public static void printf(Locale locale, String format, Object... args) {
        out.printf(locale, format, args);
        out.flush();
    }

}


import java.io.BufferedReader;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.*;

public class Main{

    public static PrintWriter out;

    public static class MyScanner {
        BufferedReader br;
        StringTokenizer st;
        public MyScanner() {
        br = new BufferedReader(new InputStreamReader(System.in));
        }

        String next() {
            while (st == null || !st.hasMoreElements()) {
                try {
                    st = new StringTokenizer(br.readLine());

                } catch (IOException e) {
                    e.printStackTrace();

                }

            }
            return st.nextToken();
        }
        int nextInt() {
            return Integer.parseInt(next());
        }

        long nextLong() {
            return Long.parseLong(next());
        }

        double nextDouble() {
            return Double.parseDouble(next());
        }
        String nextLine(){
            String str = "";
            try{
                str = br.readLine();
            } catch (IOException e){
                e.printStackTrace();
            }
            return str;
        }
    }

    public static void main(String[] args) {
        MyScanner s = new MyScanner();
        out = new PrintWriter(new BufferedOutputStream(System.out));
        int n=s.nextInt();
        List<Integer> list=new ArrayList<Integer>();
        for(int i=0;i<n;i++) list.add(s.nextInt());//=s.nextInt();
        Collections.sort(list);
        int curr=1;
        for(int i=0;i<n;i++){
            if(list.get(i)>=curr) curr++;
        }
        out.println(curr);

        out.close();

    }
}


import java.io.BufferedReader;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.*;

public class Main{

    public static PrintWriter out;

    public static class MyScanner {
        BufferedReader br;
        StringTokenizer st;
        public MyScanner() {
        br = new BufferedReader(new InputStreamReader(System.in));
        }

        String next() {
            while (st == null || !st.hasMoreElements()) {
                try {
                    st = new StringTokenizer(br.readLine());

                } catch (IOException e) {
                    e.printStackTrace();

                }

            }
            return st.nextToken();
        }
        int nextInt() {
            return Integer.parseInt(next());
        }

        long nextLong() {
            return Long.parseLong(next());
        }

        double nextDouble() {
            return Double.parseDouble(next());
        }
        String nextLine(){
            String str = "";
            try{
                str = br.readLine();
            } catch (IOException e){
                e.printStackTrace();
            }
            return str;
        }
    }

    public static void main(String[] args) {
        MyScanner s = new MyScanner();
        out = new PrintWriter(new BufferedOutputStream(System.out));
        int n=s.nextInt();
        List<Integer> list=new ArrayList<Integer>();
        for(int i=0;i<n;i++) list.add(s.nextInt());//=s.nextInt();
        Collections.sort(list);
        int min=list.get(0)+1;
        int k=1;
        while(k<n){
            if(list.contains(min)){min++; k++; continue;}
            else{list.set(k++,min++);}
        }
        out.println(list.get(n-1)+1);

        out.close();

    }
}


import java.io.BufferedReader;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.*;

public class Main{

    public static PrintWriter out;

    public static class MyScanner {
        BufferedReader br;
        StringTokenizer st;
        public MyScanner() {
        br = new BufferedReader(new InputStreamReader(System.in));
        }

        String next() {
            while (st == null || !st.hasMoreElements()) {
                try {
                    st = new StringTokenizer(br.readLine());

                } catch (IOException e) {
                    e.printStackTrace();

                }

            }
            return st.nextToken();
        }
        int nextInt() {
            return Integer.parseInt(next());
        }

        long nextLong() {
            return Long.parseLong(next());
        }

        double nextDouble() {
            return Double.parseDouble(next());
        }
        String nextLine(){
            String str = "";
            try{
                str = br.readLine();
            } catch (IOException e){
                e.printStackTrace();
            }
            return str;
        }
    }

    public static void main(String[] args) {
        MyScanner s = new MyScanner();
        out = new PrintWriter(new BufferedOutputStream(System.out));
        int n=s.nextInt();
        List<Integer> list=new ArrayList<Integer>();
        for(int i=0;i<n;i++) list.add(s.nextInt());//=s.nextInt();
        Collections.sort(list);
        int min=list.get(0)+1;
        int k=1;
        while(k<n){
            if(list.get(k)==list.get(k-1)){k++; continue;}
            if(list.contains(min)){min++; k++; continue;}
            else{list.set(k++,min++);}
        }
        out.println(list.get(n-1)+1);

        out.close();

    }
}