#include <stdio.h>
#include <malloc.h>
void Nizcat(int* niz1, int* niz2, int n);
void Operacija1(int* nizNapitaka, int* n);
void Operacija2(int* nizNapitaka, int* n);
int maxNiza(int* niz, int n);

int main()
{
    int* nizCini;

    int n, k;

    scanf("%d %d", &n, &k);

    nizCini = (int*)calloc(n, sizeof(int));

    for (int i = 0; i < n; ++i)
    {
        scanf("%d", &nizCini[i]);
    }

    k--;

    /*RADI*/

    int maxCini;

    for (int i = 0; i < k - 1 + 2; ++i)
    {
        int* niz = (int*)calloc(k, sizeof(int));

        for (int j = 0; j < i + 1; ++j)
        {
            niz[j] = 1;
        }

        for (int j = 0; j < k; ++j)
        {
            int* locNizCini = (int*)calloc(k, sizeof(int));
            Nizcat(locNizCini, nizCini, n);
            int locN = n;
            int locMax;

            for (int g = 0; g < k; ++g)
            {

                if (niz[(j + g) % k] == 0)
                {
                    Operacija1(locNizCini, &locN);
                }
                else
                {
                    Operacija2(locNizCini, &locN);
                }
            }

            locMax = maxNiza(locNizCini, locN);

            if (i == 0 && j == 0)
            {
                maxCini = locMax;
            }
            else if (locMax > maxCini)
            {
                maxCini = locMax;
            }
        }

        free(niz);
    }

    printf("%d", maxCini);
}

void Nizcat(int* niz1, int* niz2, int n)
{
    for (int i = 0; i < n; ++i)
    {
        niz1[i] = niz2[i];
    }
}

void Operacija1(int* nizNapitaka, int* n)
{
    nizNapitaka[0] -= nizNapitaka[*n - 1];
    nizNapitaka[*n - 1] = 0;

    *n -= 1;
}

void Operacija2(int* nizNapitaka, int* n)
{
    nizNapitaka[*n - 1] -= nizNapitaka[0];

    for (int i = 0; i < *n - 1; ++i)
    {
        nizNapitaka[i] = nizNapitaka[i + 1];
    }

    *n -= 1;
}

int maxNiza(int* niz, int n)
{
    int m = niz[0];

    for (int i = 1; i < n; ++i)
    {
        if (niz[i] > m)
        {
            m = niz[i];
        }
    }

    return m;
}