using System;

namespace Takmicenje_2___18._12._2021_
{
    class Program
    {
        //static int maks = 0;
        static void Pronadji(int[] napici, int k)
        {
            int[] novi_niz = new int[k];
            novi_niz[k-1] = napici[napici.Length-1];
            for (int i=0;i<k-1;i++)
            {
                novi_niz[i] = napici[i];
                //novi_niz[i] = napici[napici.Length - (k-i)];
            }
            //Otrov(novi_niz);

            int l = 0;
            int d = novi_niz.Length - 1;
            for (int i = 0; i < k - 1; i++)
            {
                if (i != k-2)
                {
                    novi_niz[d] -= novi_niz[l];
                    l++;
                }
                else
                {
                    novi_niz[l] -= novi_niz[d];
                    d--;
                }
            }
            Console.WriteLine(novi_niz[l]);
        }
        /*static void Otrov(int[] novi_niz)
        {
            for (int i=1;i<novi_niz.Length-1;i++)
            {
                novi_niz[i + 1] = Math.Abs(novi_niz[i] - novi_niz[i + 1]);
            }
            maks -= novi_niz[novi_niz.Length - 1];
        }*/
        static void Main(string[] args)
        {
            string[] red = Console.ReadLine().Split();
            int n = Convert.ToInt32(red[0]);
            int k = Convert.ToInt32(red[1]);
            string[] red2 = Console.ReadLine().Split();
            int[] napici = new int[n];
            for (int i = 0; i < n; i++)
            {
                napici[i] = Convert.ToInt32(red2[i]);
            }
            Array.Sort(napici);
            Array.Reverse(napici);
            Pronadji(napici, k);
            //Console.WriteLine(maks);
        }
    }
}