#include <bits/stdc++.h>
#pragma GCC optimize("Ofast")
using namespace std;
const int maxN = 160;
const long long INF = 1000000000000000ll;
template <class T1, class T2>
inline void remin(T1& a, T2 b) {
  a = min(a, (T1)b);
}
void licz(int* T, int n, long long dp[2][maxN][maxN * maxN],
          long long out[maxN][maxN * maxN]) {
  for (int i = (0); i < (int)(n + 1); i++)
    for (int j = (0); j < (int)(n * n + 1); j++) dp[0][i][j] = INF;
  dp[0][0][0] = 0;
  for (int i = (1); i < (int)(n + 1); i++) {
    int v = T[i - 1], cur = i & 1, prv = cur ^ 1;
    for (int j = (0); j < (int)(n + 1); j++)
      for (int k = (0); k < (int)(n * n + 1); k++) {
        dp[cur][j][k] = dp[prv][j][k];
        if (j != 0 and k >= i - j and j <= i)
          remin(dp[cur][j][k], dp[prv][j - 1][k - (i - j)] + v);
      }
  }
  for (int i = (0); i < (int)(maxN); i++)
    for (int j = (0); j < (int)(maxN * maxN); j++) out[i][j] = INF;
  for (int i = (0); i < (int)(n + 1); i++)
    for (int j = (0); j < (int)(n * n + 1); j++) out[i][j] = dp[n & 1][i][j];
}
long long dp[2][maxN][maxN * maxN], A[2][maxN][maxN * maxN];
int T[maxN];
void solve() {
  int n, k, s;
  scanf("%d%d%d", &n, &k, &s);
  for (int i = (0); i < (int)(n); i++) scanf("%d", T + i);
  if (s >= n * (n - 1) / 2) {
    sort(T, T + n);
    int res = 0;
    for (int i = (0); i < (int)(k); i++) res += T[i];
    printf("%d\n", res);
    return;
  }
  long long res0 = 0, dx = 0;
  for (int i = (0); i < (int)(k); i++) res0 += T[i];
  licz(T + k, n - k, dp, A[0]);
  reverse(T, T + k);
  for (int i = (0); i < (int)(k); i++) T[i] *= -1;
  licz(T, k, dp, A[1]);
  for (int s = (0); s < (int)(2); s++)
    for (int i = (0); i < (int)(n + 1); i++)
      for (int j = (1); j < (int)(n * n + 1); j++)
        remin(A[s][i][j], A[s][i][j - 1]);
  for (int i = (1); i < (int)(min(k, n - k) + 1); i++) {
    int c = s - i * i;
    if (c < 0) continue;
    for (int j = (0); j < (int)(c + 1); j++)
      remin(dx, A[0][i][j] + A[1][i][c - j]);
  }
  printf("%lld\n", res0 + dx);
}
int main() {
  int t = 1;
  while (t--) solve();
  return 0;
}
