#include <bits/stdc++.h>
using namespace std;
std::string dbgDelim(int &i) { return (i++ == 0 ? "" : ", "); }
template <class T>
std::ostream &operator<<(std::ostream &os, std::vector<T> v);
template <class T>
std::ostream &operator<<(std::ostream &os, std::set<T> v);
template <class T>
std::ostream &operator<<(std::ostream &os, std::queue<T> q);
template <class T>
std::ostream &operator<<(std::ostream &os, std::priority_queue<T> q);
template <class T, class K>
std::ostream &operator<<(std::ostream &os, std::pair<T, K> p);
template <class T, class K>
std::ostream &operator<<(std::ostream &os, std::map<T, K> mp);
template <class T, class K>
std::ostream &operator<<(std::ostream &os, std::unordered_map<T, K> mp);
template <int INDEX, class TUPLE>
void dbgDeploy(std::ostream &os, TUPLE tuple) {}
template <int INDEX, class TUPLE, class H, class... Ts>
void dbgDeploy(std::ostream &os, TUPLE t) {
  os << (INDEX == 0 ? "" : ", ") << get<INDEX>(t);
  dbgDeploy<INDEX + 1, TUPLE, Ts...>(os, t);
}
template <class T, class K>
void dbgDeploy(std::ostream &os, std::pair<T, K> p, std::string delim) {
  os << "(" << p.first << delim << p.second << ")";
}
template <class... Ts>
std::ostream &operator<<(std::ostream &os, std::tuple<Ts...> t) {
  os << "(";
  dbgDeploy<0, std::tuple<Ts...>, Ts...>(os, t);
  os << ")";
  return os;
}
template <class T, class K>
std::ostream &operator<<(std::ostream &os, std::pair<T, K> p) {
  dbgDeploy(os, p, ", ");
  return os;
}
template <class T>
std::ostream &operator<<(std::ostream &os, std::vector<T> v) {
  {
    int i = 0;
    os << "{";
    {
      for (T t : v) {
        os << dbgDelim(i) << t;
      };
    }
    os << "}";
    return os;
  };
}
template <class T>
std::ostream &operator<<(std::ostream &os, std::set<T> s) {
  {
    int i = 0;
    os << "{";
    {
      for (T t : s) {
        os << dbgDelim(i) << t;
      };
    }
    os << "}";
    return os;
  };
}
template <class T>
std::ostream &operator<<(std::ostream &os, std::queue<T> q) {
  {
    int i = 0;
    os << "{";
    {
      for (; q.size(); q.pop()) {
        os << dbgDelim(i) << q.front();
      };
    }
    os << "}";
    return os;
  };
}
template <class T>
std::ostream &operator<<(std::ostream &os, std::priority_queue<T> q) {
  {
    int i = 0;
    os << "{";
    {
      for (; q.size(); q.pop()) {
        os << dbgDelim(i) << q.top();
      };
    }
    os << "}";
    return os;
  };
}
template <class T, class K>
std::ostream &operator<<(std::ostream &os, std::map<T, K> mp) {
  {
    int i = 0;
    os << "{";
    {
      for (auto p : mp) {
        os << dbgDelim(i);
        dbgDeploy(os, p, "->");
      };
    }
    os << "}";
    return os;
  };
}
template <class T, class K>
std::ostream &operator<<(std::ostream &os, std::unordered_map<T, K> mp) {
  {
    int i = 0;
    os << "{";
    {
      for (auto p : mp) {
        os << dbgDelim(i);
        dbgDeploy(os, p, "->");
      };
    }
    os << "}";
    return os;
  };
}
const int64_t MAX = 155;
const int64_t COST = MAX * MAX / 2;
const int64_t INF = (((int64_t)1) << ((int64_t)(29)));
int dp[2][MAX][COST];
int main() {
  int64_t n, k, s;
  cin >> n >> k >> s;
  s = min(s + k * (k - 1) / 2, COST - 1);
  vector<int> a(n);
  for (int64_t i = 0; i < ((int64_t)(n)); ++i) cin >> a[i];
  for (int64_t k = 0; k < ((int64_t)(2)); ++k)
    for (int64_t i = 0; i < ((int64_t)(MAX)); ++i)
      for (int64_t j = 0; j < ((int64_t)(COST)); ++j) dp[k][i][j] = INF;
  dp[0][0][0] = 0;
  int cur = 1;
  int bef = 0;
  for (int pos = 0; pos < n; ++pos) {
    int max_cost = pos * (pos + 1) / 2;
    for (int selected = 0; selected <= pos; ++selected) {
      for (int cost = 0; cost <= max_cost; ++cost) {
        dp[cur][selected][cost] =
            min(dp[cur][selected][cost], dp[bef][selected][cost]);
        dp[cur][selected + 1][cost + pos] =
            min(dp[cur][selected + 1][cost + pos],
                dp[bef][selected][cost] + a[pos]);
      }
    }
    swap(cur, bef);
  }
  int ans = INF;
  for (int64_t i = 0; i < ((int64_t)(s + 1)); ++i)
    ans = min(ans, dp[bef][k][i]);
  cout << ans << endl;
}
