def pr():
p = []
mi = 0
for i in flag:
l = i - mi
mi = i
p.append(l)
p.append(a - mi)
last.append(min(p))
return
def dfs(x):
if len(flag) == b - c:
pr()
return
for i in range(x+1, b):
flag.append(s[i])
dfs(i)
flag.remove(flag[len(flag) - 1])
a, b, c = map(int, input().split())
s = []
last = []
for i in range(b):
x = int(input())
s.append(x)
for i in range(b - c):
flag = []
flag.append(s[i])
dfs(i)
print(max(last))