#include <bits/stdc++.h>
using namespace std;
const int MAXN = 151;
int n, k, s, arr[MAXN], dp[2][MAXN][MAXN * MAXN / 2];
int main() {
  ios::sync_with_stdio(0);
  cin >> n >> k >> s;
  s = min(s, n * (n - 1) / 2);
  int local = 0;
  for (int i = 1; i <= n; i++) {
    cin >> arr[i];
    if (i <= k) local += arr[i];
  }
  memset(dp, 63, sizeof(dp));
  register int i, j, z;
  for (i = 0; i <= s; i++)
    for (j = 0; j <= k; j++) dp[0][j][i] = local;
  for (i = k + 1; i <= n; i++) {
    for (j = 0; j <= k; j++)
      for (z = 0; z <= s; z++) {
        dp[1][j][z] = dp[0][j][z];
        if (j) {
          dp[1][j][z] = min(dp[1][j][z], dp[1][j - 1][z]);
          if (z - (i - j) >= 0)
            dp[1][j][z] =
                min(dp[1][j][z], dp[0][j - 1][z - (i - j)] - arr[j] + arr[i]);
        }
      }
    for (j = 0; j <= k; j++)
      for (z = 0; z <= s; z++) {
        dp[0][j][z] = dp[1][j][z];
        dp[1][j][z] = 1e9 + 10;
      }
  }
  cout << dp[0][k][s] << endl;
  return 0;
}
