#include <bits/stdc++.h>
using namespace std;
int a[205];
int n, k, s;
int dp[2][155][6006];
int better(int x, int y) {
  if (x == -1) return y;
  if (y == -1) return x;
  return min(x, y);
}
int main() {
  ios::sync_with_stdio(false);
  scanf("%d%d%d", &n, &k, &s);
  for (int i = 0; i < n; i++) {
    scanf("%d", a + i);
  }
  s = min(s, 6000);
  for (int ind = 0; ind <= k; ind++)
    for (int rem = 0; rem <= s; rem++) {
      dp[n % 2][ind][rem] = -1;
      if (ind == k) dp[n % 2][ind][rem] = 0;
    }
  for (int i = n - 1; i >= 0; i--) {
    for (int ind = 0; ind <= min(i, k); ind++) {
      for (int rem = 0; rem <= s; rem++) {
        if (n - i < k - ind) {
          dp[i % 2][ind][rem] = -1;
          continue;
        }
        if (ind == k) {
          dp[i % 2][ind][rem] = 0;
          continue;
        }
        int ans = -1;
        ans = better(ans, dp[1 - i % 2][ind][rem]);
        if (rem - i + ind >= 0) {
          int tmp = dp[1 - i % 2][ind + 1][rem - i + ind];
          if (tmp >= 0) ans = better(ans, tmp + a[i]);
        }
        dp[i % 2][ind][rem] = ans;
      }
    }
  }
  printf("%d\n", dp[0][0][s]);
  return 0;
}
