#include <bits/stdc++.h>
using namespace std;
long long n,k,a[200005],counter=0,counter2=0,maxi,vrednost1,vrednost2,vrednost3,vrednost4;
bool prvi=false,drugi=false;
int main(){
    //freopen("printing.in","r",stdin);
    cin >> n >> k;
    for(int i=0; i<n; i++){
        scanf("%d",&a[i]);
    }
    counter2=n-1;
    for(int i=0; i<k-1; i++){
        if(i==k-2){
        vrednost1=(a[counter]-a[counter2]);
        vrednost2=(a[counter2]-a[counter]);
        maxi=max(vrednost1,vrednost2);
        if(vrednost1==vrednost2){
            if((a[counter2-1]-(a[counter]-a[counter2]))>=((a[counter+1]-(a[counter2]-a[counter]))))maxi=vrednost1;
            else maxi=vrednost2;
        }
        }
        else{
        vrednost1=abs((a[counter]-a[counter2]))+(a[counter2-1]-(a[counter]-a[counter2]));
        vrednost2=abs((a[counter2]-a[counter]))+(a[counter+1]-(a[counter2]-a[counter]));
        vrednost3=abs((a[counter]-a[counter2]))+((a[counter]-a[counter2])-a[counter2-1]);
        vrednost4=abs((a[counter2]-a[counter]))+((a[counter2]-a[counter])-a[counter+1]);
        maxi=max(max(max(vrednost1,vrednost2),vrednost3),vrednost4);
        if(vrednost1==vrednost2){
            if((a[counter2-1]-(a[counter]-a[counter2]))>=((a[counter+1]-(a[counter2]-a[counter]))))maxi=vrednost1;
            else maxi=vrednost2;
        }
        else if(vrednost3==vrednost4){
            if(((a[counter]-a[counter2])-a[counter2-1])>=((a[counter2]-a[counter])-a[counter+1]))maxi=vrednost3;
            else maxi=vrednost4;
        }
        }
        if(maxi==vrednost1 || maxi==vrednost3){
            a[counter]-=a[counter2];
            counter2--;
            prvi=true;
            drugi=false;
        }
        else{
            a[counter2]-=a[counter];
            counter++;
            drugi=true;
            prvi=false;
        }
    }
    if(prvi==true)cout << a[counter] << endl;
    else cout << a[counter2] << endl;
    return 0;
}