#include <bits/stdc++.h>
const int N = 150 + 5;
using namespace std;
int n, k, s, f[2][N][N * N], a[N];
template <class I>
inline void read(I &s) {
  char c = getchar();
  for (; !isdigit(c); c = getchar())
    ;
  for (s = 0; isdigit(c); c = getchar()) s = s * 10 + c - 48;
}
int main(void) {
  read(n), read(k), read(s);
  for (int i = (1); i <= (n); ++i) read(a[i]);
  memset(f, 0x3f, sizeof(f)), f[0][0][0] = 0;
  for (int i = (1); i <= (n); ++i) {
    memset(f[i & 1][0], 0, sizeof(f[i & 1][0]));
    for (int j = (1); j <= (i); ++j)
      for (int k = (0); k <= (i * j); ++k)
        f[i & 1][j][k] = min(f[i & 1][j][k], f[(i - 1) & 1][j][k]),
              (k >= (i - j) ? f[i & 1][j][k] =
                                  min(f[i & 1][j][k],
                                      f[(i - 1) & 1][j - 1][k - (i - j)] + a[i])
                            : 0);
  }
  int ans = 1e9;
  for (int i = (0); i <= (min(s, n * (n - 1) / 2)); ++i)
    ans = min(ans, f[n & 1][k][i]);
  printf("%d\n", ans);
  return 0;
}
