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)
