#include <bits/stdc++.h>
using namespace std;
const long long int N = 2e5 + 5, inf = 1e9 + 7;
vector<vector<vector<int> > > hot;
int n, m, k, s, Arr[200];
int dfs(int lft, int rgt, int cur) {
  if (cur > s) return -inf;
  if (lft < 1 || rgt > n) return 0;
  if (hot[lft][rgt - k][cur] != -1) return hot[lft][rgt - k][cur];
  int ret = 0;
  ret = max(ret, Arr[lft] - Arr[rgt] + dfs(lft - 1, rgt + 1, cur + rgt - lft));
  ret = max(ret, dfs(lft - 1, rgt, cur));
  ret = max(ret, dfs(lft, rgt + 1, cur));
  return hot[lft][rgt - k][cur] = ret;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cin >> n >> k >> s;
  s = min(s, n * n);
  for (int i = 1; i <= n; i++) cin >> Arr[i];
  int res = 0;
  for (int i = 1; i <= k; i++) res += Arr[i];
  hot.resize(k + 1);
  for (int i = 0; i < k + 1; i++) {
    hot[i].resize(n - k + 1);
    for (int j = 0; j < n - k + 1; j++)
      hot[i][j].resize((k + 1) * (n - k + 1), -1);
  }
  cout << res - dfs(k, k + 1, 0) << "\n";
  return 0;
}
