#include <iostream>
#include <algorithm>
#include <cstring>

using namespace std;

int main()
{
    int X, N, M;
    cin >> X >> N >> M;
    int DP[21][21][X + 1], num[X + 1], ans = 0;
    memset(DP, 0, sizeof(DP));
    for (int i = 1; i <= X; ++i)
    {
        cin >> num[i];
    }

    for (int i = 0; i <= M; ++i)
    {
        for (int j = 0; j <= N; ++j)
        {
            for (int k = 1; k <= X; ++k)
            {
                DP[i][j][k] = max(DP[i][j][k], DP[i][j][k - 1] + num[k]);
                if (i > 0)
                {
                    DP[i][j][k] = max(DP[i][j][k], DP[i - 1][j][k - 1] + num[k] * 3);
                }
                if (j > 0)
                {
                    DP[i][j][k] = max(DP[i][j][k], DP[i][j - 1][k - 1] + num[k] * 2);
                }
                ans = max(ans, DP[i][j][k]);
            }
        }
    }
    cout << ans << endl;
}