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

class Main
{
	static class FastReader
    {
        BufferedReader br;
        StringTokenizer st;

        public FastReader()
        {
            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)
	{
		FastReader reader = new FastReader();
		int n = reader.nextInt();
		int m = reader.nextInt();
		int x = reader.nextInt();

		int[] arr = new int[n+2];
		int[] par = new int[n+2];
		int[] sar = new int[n+2];

		for (int i=0;i<m; i++)
		 	arr[reader.nextInt()] = 1;

		for (int i=1; i<n+2; i++)
			par[i] = par[i-1] + arr[i];

		for (int i=n; i>=0; i--)
			sar[i] = sar[i+1] + arr[i];

		System.out.println (Math.min (par[x-1], sar[x+1]));

	}
} import java.util.*; util.* java import java.io.*; io.* java class Main
{
	static class FastReader
    {
        BufferedReader br;
        StringTokenizer st;

        public FastReader()
        {
            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)
	{
		FastReader reader = new FastReader();
		int n = reader.nextInt();
		int m = reader.nextInt();
		int x = reader.nextInt();

		int[] arr = new int[n+2];
		int[] par = new int[n+2];
		int[] sar = new int[n+2];

		for (int i=0;i<m; i++)
		 	arr[reader.nextInt()] = 1;

		for (int i=1; i<n+2; i++)
			par[i] = par[i-1] + arr[i];

		for (int i=n; i>=0; i--)
			sar[i] = sar[i+1] + arr[i];

		System.out.println (Math.min (par[x-1], sar[x+1]));

	}
} Main public static void main (String[] args)
	{
		FastReader reader = new FastReader();
		int n = reader.nextInt();
		int m = reader.nextInt();
		int x = reader.nextInt();

		int[] arr = new int[n+2];
		int[] par = new int[n+2];
		int[] sar = new int[n+2];

		for (int i=0;i<m; i++)
		 	arr[reader.nextInt()] = 1;

		for (int i=1; i<n+2; i++)
			par[i] = par[i-1] + arr[i];

		for (int i=n; i>=0; i--)
			sar[i] = sar[i+1] + arr[i];

		System.out.println (Math.min (par[x-1], sar[x+1]));

	} main {
		FastReader reader = new FastReader();
		int n = reader.nextInt();
		int m = reader.nextInt();
		int x = reader.nextInt();

		int[] arr = new int[n+2];
		int[] par = new int[n+2];
		int[] sar = new int[n+2];

		for (int i=0;i<m; i++)
		 	arr[reader.nextInt()] = 1;

		for (int i=1; i<n+2; i++)
			par[i] = par[i-1] + arr[i];

		for (int i=n; i>=0; i--)
			sar[i] = sar[i+1] + arr[i];

		System.out.println (Math.min (par[x-1], sar[x+1]));

	} FastReader reader = new FastReader(); reader new FastReader() int n = reader.nextInt(); n reader.nextInt() reader.nextInt reader int m = reader.nextInt(); m reader.nextInt() reader.nextInt reader int x = reader.nextInt(); x reader.nextInt() reader.nextInt reader int[] arr = new int[n+2]; arr new int[n+2] n+2 n 2 int[] par = new int[n+2]; par new int[n+2] n+2 n 2 int[] sar = new int[n+2]; sar new int[n+2] n+2 n 2 for (int i=0;i<m; i++)
		 	arr[reader.nextInt()] = 1; int i=0; int i=0; i 0 i<m i m i++ i++ i arr[reader.nextInt()] = 1; arr[reader.nextInt()] = 1 arr[reader.nextInt()] arr reader.nextInt() reader.nextInt reader 1 for (int i=1; i<n+2; i++)
			par[i] = par[i-1] + arr[i]; int i=1; int i=1; i 1 i<n+2 i n+2 n 2 i++ i++ i par[i] = par[i-1] + arr[i]; par[i] = par[i-1] + arr[i] par[i] par i par[i-1] + arr[i] par[i-1] par i-1 i 1 arr[i] arr i for (int i=n; i>=0; i--)
			sar[i] = sar[i+1] + arr[i]; int i=n; int i=n; i n i>=0 i 0 i-- i-- i sar[i] = sar[i+1] + arr[i]; sar[i] = sar[i+1] + arr[i] sar[i] sar i sar[i+1] + arr[i] sar[i+1] sar i+1 i 1 arr[i] arr i System.out.println (Math.min (par[x-1], sar[x+1])) System.out.println System.out System System.out Math.min (par[x-1], sar[x+1]) Math.min Math par[x-1] par x-1 x 1 sar[x+1] sar x+1 x 1 String[] args args static class FastReader
    {
        BufferedReader br;
        StringTokenizer st;

        public FastReader()
        {
            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;
        }
    } FastReader BufferedReader br; br StringTokenizer st; st public FastReader()
        {
            br = new BufferedReader(new
                     InputStreamReader(System.in));
        } FastReader {
            br = new BufferedReader(new
                     InputStreamReader(System.in));
        } br = new BufferedReader(new
                     InputStreamReader(System.in)) 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();
        } next {
            while (st == null || !st.hasMoreElements())
            {
                try
                {
                    st = new StringTokenizer(br.readLine());
                }
                catch (IOException  e)
                {
                    e.printStackTrace();
                }
            }
            return st.nextToken();
        } while (st == null || !st.hasMoreElements())
            {
                try
                {
                    st = new StringTokenizer(br.readLine());
                }
                catch (IOException  e)
                {
                    e.printStackTrace();
                }
            } st == null || !st.hasMoreElements() st == null st null !st.hasMoreElements() st.hasMoreElements() st.hasMoreElements st {
                try
                {
                    st = new StringTokenizer(br.readLine());
                }
                catch (IOException  e)
                {
                    e.printStackTrace();
                }
            } try
                {
                    st = new StringTokenizer(br.readLine());
                }
                catch (IOException  e)
                {
                    e.printStackTrace();
                } catch (IOException  e)
                {
                    e.printStackTrace();
                } IOException  e {
                    e.printStackTrace();
                } e.printStackTrace() e.printStackTrace e {
                    st = new StringTokenizer(br.readLine());
                } st = new StringTokenizer(br.readLine()) st new StringTokenizer(br.readLine()) return st.nextToken(); st.nextToken() st.nextToken st int nextInt()
        {
            return Integer.parseInt(next());
        } nextInt {
            return Integer.parseInt(next());
        } return Integer.parseInt(next()); Integer.parseInt(next()) Integer.parseInt Integer next() next long nextLong()
        {
            return Long.parseLong(next());
        } nextLong {
            return Long.parseLong(next());
        } return Long.parseLong(next()); Long.parseLong(next()) Long.parseLong Long next() next double nextDouble()
        {
            return Double.parseDouble(next());
        } nextDouble {
            return Double.parseDouble(next());
        } return Double.parseDouble(next()); Double.parseDouble(next()) Double.parseDouble Double next() next String nextLine()
        {
            String str = "";
            try
            {
                str = br.readLine();
            }
            catch (IOException e)
            {
                e.printStackTrace();
            }
            return str;
        } nextLine {
            String str = "";
            try
            {
                str = br.readLine();
            }
            catch (IOException e)
            {
                e.printStackTrace();
            }
            return str;
        } String str = ""; str "" try
            {
                str = br.readLine();
            }
            catch (IOException e)
            {
                e.printStackTrace();
            } catch (IOException e)
            {
                e.printStackTrace();
            } IOException e {
                e.printStackTrace();
            } e.printStackTrace() e.printStackTrace e {
                str = br.readLine();
            } str = br.readLine() str br.readLine() br.readLine br return str; str
import java.util.*;
import java.io.*;

class Main
{
	static class FastReader
    {
        BufferedReader br;
        StringTokenizer st;

        public FastReader()
        {
            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)
	{
		FastReader reader = new FastReader();
		int n = reader.nextInt();
		int m = reader.nextInt();
		int x = reader.nextInt();

		int[] arr = new int[n+2];
		int[] par = new int[n+2];
		int[] sar = new int[n+2];

		for (int i=0;i<m; i++)
		 	arr[reader.nextInt()] = 1;

		for (int i=1; i<n+2; i++)
			par[i] = par[i-1] + arr[i];

		for (int i=n; i>=0; i--)
			sar[i] = sar[i+1] + arr[i];

		System.out.println (Math.min (par[x-1], sar[x+1]));

	}
}
