from math import floor N, M, K = map(int, input().split()) A = [] for _ in range(N+1): A.append(int(input())) # dp[i][j]: i分目まで終了してj回売買を済ませた場合の資金の最大値 dp = [[0 for _ in range(M+1)] for _ in range(N+1)] for i in range(N+1): dp[i][0] = K for i in range(1, N+1): for j in range(0, M+1): dp[i][j] = max( dp[i-1][j], max([floor(dp[k][j-1]/A[k])*A[i] + dp[k][j-1]%A[k] for k in range(i)]) ) ans = dp[-1][-1] if ans < K: print(K) else: print(ans)