import sys, math def solve(): data = sys.stdin.read().split() n = int(data[0]) k = int(data[1]) a = [int(x) for x in data[2:2+n]] grp_sum = [0] * k grp_cnt = [0] * k best = -10**9 def dfs(i, max_g): nonlocal best if i == n: if max_g == k - 1: mx = -10**9 mn = 10**9 for g in range(k): s, c = grp_sum[g], grp_cnt[g] if c == 0: return avg = s / c if avg > mx: mx = avg if avg < mn: mn = avg diff = math.ceil(mx - mn) if diff > best: best = diff return for g in range(max_g + 1): grp_sum[g] += a[i] grp_cnt[g] += 1 dfs(i + 1, max_g) grp_sum[g] -= a[i] grp_cnt[g] -= 1 if max_g + 1 < k: ng = max_g + 1 grp_sum[ng] += a[i] grp_cnt[ng] += 1 dfs(i + 1, ng) grp_sum[ng] -= a[i] grp_cnt[ng] -= 1 dfs(0, -1) print(best) if __name__ == '__main__': solve()