N, K = list(map(int,input().split()))

A = list(map(int,input().split()))

P = [0] + [abs(i) for i in A if i> 0 ]

M = [abs(i) for i in A if i< 0 ] +[0]

M = sorted(M,reverse =False)





cnt = 10000000000



if len(P) == len(M) == 1:

    cnt = 0

elif len(P) == 1:

    cnt = M[K]

elif len(M) == 1:

    cnt = P[K]

else:

    #リストがK以下の場合不具合が起きる

    #for i in range(1,K):   

    #len(P)=4 len(M)=3 K=5の場合、IndexErrorとなる。rangeをうまく設定する必要があるが実装できない。

    #正の方向でi個ろうそくを通って、負の方向にK-i個ろうそくを通る

    s = max(0,K-len(M)+1)

    e = min(K+1, len(P))

    for i in range(s, e):

        cnt =min(cnt,P[i]*2 + M[K-i])

    #負の方向でi個ろうそくを通って、正の方向にK-i個ろうそくを通る

    s1 = max(0,K-len(P)+1)

    e1 = min(K+1, len(M))

    for i in range(s1, e1):

        cnt =min(cnt,M[i]*2 + P[K-i])



print(cnt)
N,K = list(map(int,input().split()))

X = list(map(int,input().split()))

ans = 10**10



for i in range(N-K+1):

    #S = X[i:i+K]

    #print(S,S[0],S[-1])

    mi = X[i]

    ma = X[i+K-1]

    #print(mi,ma)

    if ma<=0:

        ans = min(ans ,abs(mi))

    elif  mi>0:

        ans = min(ans ,ma)

    elif  mi<0 and ma>0:

        if abs(mi) > ma :

            ans = min(ans,abs(mi) + 2*ma)

        else :

            ans = min(ans,abs(mi)*2 + ma)



print(ans)
N, K = list(map(int, input().split()))
A = list(map(int, input().split()))
P = [0] + [abs(i) for i in A if i > 0]
M = [abs(i) for i in A if i < 0] + [0]
M = sorted(M, reverse=False)
cnt = 10000000000
if len(P) == len(M) == 1:
    cnt = 0
elif len(P) == 1:
    cnt = M[K]
elif len(M) == 1:
    cnt = P[K]
else:
    # リストがK以下の場合不具合が起きる
    # for i in range(1,K):
    # len(P)=4 len(M)=3 K=5の場合、IndexErrorとなる。rangeをうまく設定する必要があるが実装できない。
    # 正の方向でi個ろうそくを通って、負の方向にK-i個ろうそくを通る
    s = max(0, K - len(M) + 1)
    e = min(K + 1, len(P))
    for i in range(s, e):
        cnt = min(cnt, P[i] * 2 + M[K - i])
    # 負の方向でi個ろうそくを通って、正の方向にK-i個ろうそくを通る
    s1 = max(0, K - len(P) + 1)
    e1 = min(K + 1, len(M))
    for i in range(s1, e1):
        cnt = min(cnt, M[i] * 2 + P[K - i])
print(cnt)

N, K = list(map(int, input().split()))
X = list(map(int, input().split()))
ans = 10**10
for i in range(N - K + 1):
    # S = X[i:i+K]
    # print(S,S[0],S[-1])
    mi = X[i]
    ma = X[i + K - 1]
    # print(mi,ma)
    if ma <= 0:
        ans = min(ans, abs(mi))
    elif mi > 0:
        ans = min(ans, ma)
    elif mi < 0 and ma > 0:
        if abs(mi) > ma:
            ans = min(ans, abs(mi) + 2 * ma)
        else:
            ans = min(ans, abs(mi) * 2 + ma)
print(ans)

-A = list(map(int, input().split())) -P = [0] + [abs(i) for i in A if i > 0] -M = [abs(i) for i in A if i < 0] + [0] -M = sorted(M, reverse=False) -cnt = 10000000000 -if len(P) == len(M) == 1: -    cnt = 0 -elif len(P) == 1: -    cnt = M[K] -elif len(M) == 1: -    cnt = P[K] -else: -    # リストがK以下の場合不具合が起きる -    # for i in range(1,K): -    # len(P)=4 len(M)=3 K=5の場合、IndexErrorとなる。rangeをうまく設定する必要があるが実装できない。 -    # 正の方向でi個ろうそくを通って、負の方向にK-i個ろうそくを通る -    s = max(0, K - len(M) + 1) -    e = min(K + 1, len(P)) -    for i in range(s, e): -        cnt = min(cnt, P[i] * 2 + M[K - i]) -    # 負の方向でi個ろうそくを通って、正の方向にK-i個ろうそくを通る -    s1 = max(0, K - len(P) + 1) -    e1 = min(K + 1, len(M)) -    for i in range(s1, e1): -        cnt = min(cnt, M[i] * 2 + P[K - i]) -print(cnt) +X = list(map(int, input().split())) +ans = 10**10 +for i in range(N - K + 1): +    # S = X[i:i+K] +    # print(S,S[0],S[-1]) +    mi = X[i] +    ma = X[i + K - 1] +    # print(mi,ma) +    if ma <= 0: +        ans = min(ans, abs(mi)) +    elif mi > 0: +        ans = min(ans, ma) +    elif mi < 0 and ma > 0: +        if abs(mi) > ma: +            ans = min(ans, abs(mi) + 2 * ma) +        else: +            ans = min(ans, abs(mi) * 2 + ma) +print(ans)