#include <bits/stdc++.h>
using namespace std;
int a[152], n, k, s, dp[5627][11178];
int call(int l, int r, int s) {
  if (l > k) return 0;
  if (r <= k) return a[l] + call(l + 1, r, s);
  int p = (n - r) * k + l;
  int &ret = dp[p][s];
  if (~ret) return ret;
  ret = 1000000000;
  ret = min(ret, a[l] + call(l + 1, r, s));
  {
    ret = min(ret, call(l, r - 1, s));
    if (s >= (r - l)) ret = min(ret, a[r] + call(l + 1, r - 1, s - (r - l)));
  }
  return ret;
}
int main() {
  int i, j, p, q, m;
  cin >> n >> k >> m;
  for (i = 1; i <= n; i++) {
    cin >> a[i];
  }
  m = min(n * (n - 1) / 2, m);
  memset(dp, -1, sizeof dp);
  p = call(1, n, m);
  cout << p << endl;
  return 0;
}
