#include <bits/stdc++.h>
using namespace std;
template <typename T>
void arrout(T arr[], int len) {
  for (int i = 0; i <= len; ++i) cout << arr[i] << " ";
  cout << endl;
}
int OK = 1;
const int INF = 0x3f3f3f3f;
const int maxn = 160;
int dp[maxn][maxn * maxn];
int n, k, s;
int main() {
  scanf("%d%d%d", &n, &k, &s);
  int v;
  memset(dp, 0x3f3f3f3f, sizeof(dp));
  dp[0][0] = 0;
  for (int i = 1; i <= n; ++i) {
    scanf("%d", &v);
    for (int j = i - 1; j >= 0; --j) {
      for (int k = 0; k <= i * j; ++k) {
        dp[j + 1][k + i - j - 1] = min(dp[j + 1][k + i - j - 1], dp[j][k] + v);
      }
    }
  }
  if (s > n * n) s = n * n;
  int ans = INF;
  for (int i = 0; i <= s; ++i) ans = min(ans, dp[k][i]);
  cout << ans << endl;
  return 0;
}
