n, m, k = map(int, input().split()) a = list(map(int, input().split())) a.sort(reverse=True) INF = float('inf') dp = [-INF] * (k + 1) dp[0] = 0 for i in range(1, k + 1): current_max = -INF for j in range(i): if dp[j] == -INF: continue for num in a: s = dp[j] + num if s <= m and s > current_max: current_max = s dp[i] = current_max if current_max != -INF else -INF max_sum = max(val for val in dp if val <= m) print(max_sum if max_sum != -INF else 0)