#include <bits/stdc++.h>
using namespace std;
const int N = 3e5 + 9, mod = 20071027, inf = 1e8;
int ar[152], dp[152][76][5630];
int n, k, s;
int minimize(int ind, int need, int rem) {
  if (ind > n) {
    if (need == 0) return 0;
    return inf;
  }
  if (need == 0) return 0;
  if (~dp[ind][need][rem]) return dp[ind][need][rem];
  int ret = ar[ind] + minimize(ind + 1, need - 1, rem);
  if (rem >= need) ret = min(ret, minimize(ind + 1, need, rem - need));
  return dp[ind][need][rem] = ret;
}
int maximize(int ind, int need, int rem) {
  if (ind == 0) {
    if (need == 0) return 0;
    return -inf;
  }
  if (need == 0) return 0;
  if (~dp[ind][need][rem]) return dp[ind][need][rem];
  int ret = ar[ind] + maximize(ind - 1, need - 1, rem);
  if (rem >= need) ret = max(ret, maximize(ind - 1, need, rem - need));
  return dp[ind][need][rem] = ret;
}
int main() {
  cin >> n >> k >> s;
  int tt = 0;
  memset(dp, -1, sizeof dp);
  for (int i = 1; i <= n; i++) cin >> ar[i], tt += ar[i];
  if (k < 76)
    cout << minimize(1, k, min(s, 5626)) << "\n";
  else
    cout << tt - maximize(n, n - k, min(s, 5626)) << "\n";
  return 0;
}
