n, k = map(int, input().split())
a = list(map(int, input().split()))
pref = [0] * (n + 1)
for i, x in enumerate(a):
pref[i + 1] = pref[i] + x
V = sorted({pref[j] - pref[i] for i in range(n) for j in range(i + 1, n + 1)})
def check(L, U):
dp = [-1] * (n + 1)
dp[0] = 0
for i in range(1, n + 1):
for j in range(i):
if dp[j] != -1 and L <= pref[i] - pref[j] <= U:
dp[i] = max(dp[i], dp[j] + 1)
return dp[n] >= k
ans = float('inf')
left = 0
for right in range(len(V)):
while check(V[left], V[right]):
ans = min(ans, V[right] - V[left])
left += 1
if left > right:
break
print(ans)
biwgayA9IG1hcChpbnQsIGlucHV0KCkuc3BsaXQoKSkKYSA9IGxpc3QobWFwKGludCwgaW5wdXQoKS5zcGxpdCgpKSkKCgpwcmVmID0gWzBdICogKG4gKyAxKQpmb3IgaSwgeCBpbiBlbnVtZXJhdGUoYSk6CiAgICBwcmVmW2kgKyAxXSA9IHByZWZbaV0gKyB4CgpWID0gc29ydGVkKHtwcmVmW2pdIC0gcHJlZltpXSBmb3IgaSBpbiByYW5nZShuKSBmb3IgaiBpbiByYW5nZShpICsgMSwgbiArIDEpfSkKCgpkZWYgY2hlY2soTCwgVSk6CiAgICBkcCA9IFstMV0gKiAobiArIDEpCiAgICBkcFswXSA9IDAKICAgIGZvciBpIGluIHJhbmdlKDEsIG4gKyAxKToKICAgICAgICBmb3IgaiBpbiByYW5nZShpKToKICAgICAgICAgICAgaWYgZHBbal0gIT0gLTEgYW5kIEwgPD0gcHJlZltpXSAtIHByZWZbal0gPD0gVToKICAgICAgICAgICAgICAgIGRwW2ldID0gbWF4KGRwW2ldLCBkcFtqXSArIDEpCiAgICByZXR1cm4gZHBbbl0gPj0gawoKCmFucyA9IGZsb2F0KCdpbmYnKQpsZWZ0ID0gMApmb3IgcmlnaHQgaW4gcmFuZ2UobGVuKFYpKToKICAgIHdoaWxlIGNoZWNrKFZbbGVmdF0sIFZbcmlnaHRdKToKICAgICAgICBhbnMgPSBtaW4oYW5zLCBWW3JpZ2h0XSAtIFZbbGVmdF0pCiAgICAgICAgbGVmdCArPSAxCiAgICAgICAgaWYgbGVmdCA+IHJpZ2h0OgogICAgICAgICAgICBicmVhawoKcHJpbnQoYW5zKQo=