#include <bits/stdc++.h>
#pragma GCC optimize("O3")
const long long INF = 0x3f3f3f3f3f3f3f3f;
const long long llinf = (1LL << 61);
const int inf = (1 << 30);
const int nmax = 1e5 + 50;
const int mod = 1e9 + 7;
using namespace std;
int n, k, s, i, j, t, f[2][155][nmax], ans = inf, a[155];
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cerr.tie(0);
  cout.tie(0);
  cin >> n >> k >> s;
  for (i = 0; i < n; i++) cin >> a[i];
  s = min(s, n * (n - 1) / 2);
  for (i = 0; i < 2; i++)
    for (j = 0; j <= k; j++)
      for (t = 0; t <= s; t++) f[i][j][t] = inf;
  f[0][0][0] = 0;
  for (i = 0; i < n; i++) {
    int cur = i & 1, nxt = cur ^ 1;
    for (j = 0; j <= min(k, i); j++) {
      for (t = 0; t <= s; t++)
        if (f[cur][j][t] != inf) {
          f[nxt][j][t] = min(f[nxt][j][t], f[cur][j][t]);
          f[nxt][j + 1][t + i - j] =
              min(f[nxt][j + 1][t + i - j], f[cur][j][t] + a[i]);
          f[cur][j][t] = inf;
        }
    }
  }
  for (i = 0; i <= s; i++) ans = min(ans, f[n & 1][k][i]);
  cout << ans << endl;
  return 0;
}
