def func(P): R = [] for x in X: l, r = x-P, x+P if l < 0: R.append((l%L, 1)) l = 0 if L < r: R.append((0, 1)) R.append((r%L+0.5, -1)) r = L R.append((l, 1)) if r < L: R.append((r+0.5, -1)) R.sort(key=lambda x:x[0]) if R[0][0] != 0: return False SUM = 0 for i, (n, d) in enumerate(R): SUM += d if (1 <= n or i+1 == len(R) or n < R[i+1][0]) and SUM < K: return False return True for _ in range(int(input())): N, L, K = map(int, input().split()) X = list(map(int, input().split())) left = 0 right = (L+1)//2 while left+1 < right: mid = (left+right)//2 if not func(mid): left = mid else: right = mid print(right)