#include <bits/stdc++.h>
using namespace std;
int n, k, s;
vector<int> arr;
long long dp[2][160][100000];
int main() {
  scanf("%d%d%d", &n, &k, &s);
  s += (k - 1) * k / 2;
  s = min(s, n * (n + 1) / 2);
  arr = vector<int>(n);
  for (int i = 0; i < n; i++) scanf("%d", &arr[i]);
  for (int i = 0; i < 2; i++)
    for (int j = 1; j <= k; j++)
      for (int p = 0; p <= s; p++) dp[i][j][p] = INT_MAX;
  bool b6e5 = true;
  for (int i = 0; i < n; i++, b6e5 = !b6e5) {
    for (int j = 1; j <= k; j++) {
      for (int p = 0; p <= s; p++) {
        if (p - i >= 0) dp[b6e5][j][p] = dp[!b6e5][j - 1][p - i] + arr[i];
        if (p) dp[b6e5][j][p] = min(dp[b6e5][j][p], dp[b6e5][j][p - 1]);
        dp[b6e5][j][p] = min(dp[b6e5][j][p], dp[!b6e5][j][p]);
      }
    }
  }
  printf("%I64d\n", dp[!b6e5][k][s]);
}
