#include <bits/stdc++.h>
using namespace std;
const int MAXN = 155;
int arr[MAXN], dp[2][MAXN][MAXN * MAXN / 2];
int main() {
  int n, k, s;
  scanf("%d%d%d", &n, &k, &s);
  for (int i = 1; i <= n; i++) scanf("%d", &arr[i]);
  if (s >= n * (n + 1) / 2) {
    sort(arr + 1, arr + n + 1);
    int sum = 0;
    for (int i = 1; i <= k; i++) sum += arr[i];
    cout << sum << endl;
    return 0;
  }
  s += k * (k + 1) / 2;
  dp[1][1][0] = 987654321;
  for (int t = 2; t <= k; t++) {
    for (int p = 0; p <= s; p++) dp[1][t][p] = 987654321;
  }
  for (int p = 1; p <= s; p++) dp[1][1][p] = arr[1];
  for (int m = 2; m <= n; m++) {
    for (int p = 0; p <= s; p++) dp[m % 2][0][p] = 0;
    for (int t = 1; t <= k; t++) dp[m % 2][t][0] = 987654321;
    for (int t = 1; t <= k; t++)
      for (int p = 1; p <= s; p++) {
        if (p < m)
          dp[m % 2][t][p] = dp[(m - 1) % 2][t][p];
        else
          dp[m % 2][t][p] = (((dp[(m - 1) % 2][t][p]) <
                              (dp[(m - 1) % 2][t - 1][p - m] + arr[m]))
                                 ? (dp[(m - 1) % 2][t][p])
                                 : (dp[(m - 1) % 2][t - 1][p - m] + arr[m]));
      }
  }
  cout << dp[n % 2][k][s] << endl;
}
