#!/usr/bin/env python3 from bisect import bisect n, K, X = map(int, input().split()) xs = sorted(list(map(int, input().split()))) S = sum(xs) pairs = [] for i in range(n): for j in range(i): pairs.append((xs[i] + xs[j], [i, j])) pairs.sort() # k = 0 best = abs(S / n - X) if K >= 1: for s in xs: best = min(best, abs((S - s) / (n - 1) - X)) if K >= 2: for (s, ij) in pairs: best = min(best, abs((S - s) / (n - 2) - X)) if K >= 3: i = 0 j = len(pairs) - 1 while True: s1 = xs[i] (s2, [k, l]) = pairs[j] if k != i and l != i: best = min(best, abs((S - s1 - s2) / (n - 3) - X)) if i == len(xs) - 1 and j == 0: break if j == 0 or (i < len(xs) - 1 and S - s1 - s2 > X * (n - 3)): i = i + 1 else: j = j - 1 if K >= 4: for (s1, [i, j]) in pairs: s2 = S - s1 - (n - 4) * X idx = bisect(pairs, (s2, [])) # Find first position to the left and right disjoint with ij for idx2 in range(idx - 1, -1, -1): s2, kl = pairs[idx2] if i not in kl and j not in kl: best = min(best, abs((S - s1 - s2) / (n - 4) - X)) break for idx2 in range(idx, len(pairs)): s2, kl = pairs[idx2] if i not in kl and j not in kl: best = min(best, abs((S - s1 - s2) / (n - 4) - X)) break print(best)