#include <bits/stdc++.h>
using namespace std;
const int MAXN = 155, INF = 1e9;
int a[MAXN], dp[MAXN][MAXN * MAXN], dp2[MAXN][MAXN * MAXN];
int main() {
  int n, k, s, sum = 0;
  scanf("%d%d%d", &n, &k, &s);
  for (int i = 0; (i) < (n); ++i) scanf("%d", &a[i]);
  for (int i = 0; (i) < (k); ++i) sum += a[i];
  int l = min(k, n - k);
  int cnt = n * (n - 1) / 2;
  for (int g = 0; (g) < (cnt + 1); ++g) dp2[0][g] = 0;
  for (int g = 0; (g) < (cnt + 1); ++g)
    for (int j = (1); (j) < (l + 1); ++j) dp2[j][g] = INF;
  for (int i = 0; (i) < (k); ++i)
    for (int j = (l + 1) - 1; (j) >= (1); --j) {
      for (int g = (cnt + 1) - 1; (g) >= 0; --g)
        if (g >= k - 1 - i)
          dp[j][g] = max(dp[j][g], dp[j - 1][g - (k - 1 - i)] + a[i]);
    }
  for (int i = 0; (i) < (n - k); ++i)
    for (int j = (l + 1) - 1; (j) >= (1); --j) {
      for (int g = (cnt + 1) - 1; (g) >= 0; --g)
        if (g >= i) dp2[j][g] = min(dp2[j][g], dp2[j - 1][g - i] + a[k + i]);
    }
  int ans = INF;
  for (int m = 0; (m) < (l + 1); ++m) {
    if (s >= m * m) {
      int s2 = min(2 * cnt, s - m * m);
      for (int i = 0; (i) < (s2 + 1); ++i) {
        ans = min(ans, sum - dp[m][min(cnt, i + m * (m - 1) / 2)] +
                           dp2[m][min(cnt, s2 - i + m * (m - 1) / 2)]);
      }
    }
  }
  printf("%d\n", ans);
  return 0;
}
