#include <bits/stdc++.h>

using namespace std;

void swap(int* a, int* b) 
{ 
    int t = *a; 
    *a = *b; 
    *b = t; 
} 

int partition (int arr[], int low, int high) 
{ 
    int pivot = arr[high];
    int i = (low - 1);
  
    for (int j = low; j <= high - 1; j++) 
    { 

        if (arr[j] < pivot) 
        { 
            i++;
            swap(&arr[i], &arr[j]); 
        } 
    } 
    swap(&arr[i + 1], &arr[high]); 
    return (i + 1); 
} 

void quickSort(int arr[], int low, int high) 
{ 
    if (low < high) 
    { 

        int pi = partition(arr, low, high); 

        quickSort(arr, low, pi - 1); 
        quickSort(arr, pi + 1, high); 
    } 
} 
void printArray(int arr[], int size) 
{ 
    int i; 
    for (i = 0; i < size; i++) 
        cout << arr[i] << " "; 
    cout << endl; 
} 

int main()
{
    int N; cin>>N;
    int br=1;
    int a[N];
    int novoA[N];
    int K; cin>>K;
    int j=1, l=0;
    int k =0;
    for(int i =0; i<N; i++){
        cin>>a[i];
    }
    quickSort(a,0,N-1);
    if(K%2==0){
        for(int i=0; i<K/2; i++){
            novoA[i]=a[i];
        }
        for(int i =K-1; i>K/2-1; i-- ){
            novoA[i]= a[N-br];
            br++;
        }
    }else{
        for(int i=0; i<K/2; i++){
            novoA[i]=a[i];
        }
        for(int i =K-1; i>=K/2; i-- ){
            novoA[i]= a[N-br];
            br++;
        }
    }

    for(int i=0;i<K-1;i++){
            if(novoA[k]>0){

                novoA[k]= novoA[k]- novoA[K-j+l];
                j++;

                
            }else if(novoA[k] < 0 ){

                novoA[K-j+l]= novoA[K-j+l] + abs(novoA[k]);

                k++;
                j++;
                l++;
            }
    }
    if(novoA[k]<0){
        cout<<abs(novoA[k]);
    }else{
        cout<<novoA[k];
    }
    

}