n, beginLevel, maxLevel = map(int, input().split())
c = list(map(int, input().split()))
dp = [[False] * (maxLevel + 1) for _ in range(n + 1)]
dp[0][beginLevel] = True
for i in range(1, n + 1):
for j in range(maxLevel + 1):
if dp[i - 1][j]:
if 0 <= j + c[i - 1] <= maxLevel:
dp[i][j + c[i - 1]] = True
if 0 <= j - c[i - 1] <= maxLevel:
dp[i][j - c[i - 1]] = True
for i in range(maxLevel, -1, -1):
if dp[n][i]:
print(i)
break
else:
print(-1)