using System;
using System.Collections.Generic;

namespace Petlja5
{
    class Program
    {
        static List<int> kombinacije = new List<int>();
        static List<int> workList = new List<int>();
        static List<int> vrednostiKomb = new List<int>();
        static List<int> tempList = new List<int>();

        static void addCombo()
        {
            for(int i = 0; i < kombinacije.Count; i++)
            {
                workList.Add(kombinacije[i]);
            }
        }

        static void combMain(int gap, int k, int[] Napici, int trueK)
        {
            if (k == 0)
            {
                addCombo();
                return;
            }

            for(int i = gap; i <= (Napici.Length - k); i++)
            {
                kombinacije.Add(Napici[i]);
                combMain(i + 1, k - 1, Napici, trueK);
                kombinacije.RemoveAt(kombinacije.Count - 1);
            }
        }

        static void calcStuff()
        {
            int op1, op2;
            op1 = tempList[0] - tempList[tempList.Count - 1];
            op2 = tempList[tempList.Count - 1] - tempList[0];

            if (op1 > op2) //do op1, x=x+y (x-prvi,y-zadnji)
            {
                tempList[0] -= tempList[tempList.Count - 1];
                tempList.RemoveAt(tempList.Count - 1);
            }
            else
            {
                tempList[tempList.Count - 1] -= tempList[0];
                tempList.RemoveAt(0);
            }

            if (tempList.Count == 1)
            {
                vrednostiKomb.Add(tempList[0]); //add the only
                tempList.RemoveAt(0);
            }
            else
            {
                calcStuff();
            }
        }

        static void Main(string[] args)
        {
            string[] unos = Console.ReadLine().Split(' ');
            int n = int.Parse(unos[0]); int k = int.Parse(unos[1]);
            int[] Napici = new int[n];

            unos = Console.ReadLine().Split(' ');
            for (int i = 0; i < unos.Length; i++)
            {
                Napici[i] = int.Parse(unos[i]);
            }

            combMain(0, k, Napici, k);

            for (int i = 0; i < ((workList.Count)/k); i++)
            {
                for (int j = (i*k); j < ((i*k)+k); j++)
                {
                    tempList.Add(workList[j]);
                }
                calcStuff();
            }

            int max = 0;
            for (int i = 0; i < vrednostiKomb.Count; i++)
            {
                if (max < vrednostiKomb[i]){
                    max = vrednostiKomb[i];
                }
            }

            Console.WriteLine(max);
        }
    }
}