#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#define N 1025
using namespace std;
int dp[2][N];
int w[N];
int cn[N] = {0,1,1};
const int num[] = {1,2,4,8,16,32,64,128,256,512,1024};
int main(){
int n,m,q;
for(int i = 3; i < num[10]; i++)
cn[i] = cn[i>>1] + cn[i&1]; //1的个数
while(scanf("%d%d%d",&n,&m,&q) != EOF){
memset(dp,0,sizeof(dp));
int flag = 0;
for(int i = 1; i <= n; i++)
scanf("%d",&w[i]);
int tmp = 1<<m;
for(int i = 1; i <= n; i++){
for(int j = 0; j < tmp; j++){
/*if(cn[j] <= q)
dp[i&1][j] = max(dp[~i&1][j>>1],dp[~i&1][(j>>1)+num[m-1]]) + (j&1)*w[i];
*/
if(cn[j] <= q)
dp[!flag][j] = max(dp[flag][j>>1],dp[flag][(j>>1)+num[m-1]]) + (j&1)*w[i];
}
flag = !flag;
}
int ans = 0;
for(int i = 1; i < tmp; i++)
ans = max(ans,dp[n&1][i]);
printf("%d\n",ans);
}
return 0;
}