n, m, k = map(int, input().split()) a = list(map(int, input().split())) if n > 0 else [] if n == 0: print(0) else: a_sorted = sorted(a, reverse=True) dp = [0] * (k + 1) for i in range(1, k + 1): if dp[i-1] == -1: dp[i] = -1 continue current_sum = dp[i-1] remaining = m - current_sum if remaining < 0: dp[i] = -1 continue selected_a = None for num in a_sorted: if num <= remaining: selected_a = num break if selected_a is not None: dp[i] = current_sum + selected_a else: dp[i] = -1 max_sum = 0 for s in dp: if s <= m and s > max_sum: max_sum = s print(max_sum)