#include<bits/stdc++.h>
using namespace std;


int n, k, z;
long long dp[100005][10];

long long sol(int arr[], int pos, int total, int left) {

	if (pos >= n || pos < 0 || total == 0) return 0;
	if (dp[pos][left] != -1) return dp[pos][left];
	long long ret = 0;
	if (pos < n)ret = max(ret, arr[pos] + sol(arr, pos + 1, total - 1, left));

	if (left && pos > 0 && total) {
		ret = max(ret, sol(arr, pos - 1, total - 1, left - 1) + arr[pos]);
	}


	return dp[pos][left] = ret;

}



int main() {
	int cs;
	scanf("%d", &cs);
	while (cs--) {
		memset(dp, -1, sizeof(dp));
		scanf("%d %d %d", &n, &k, &z);
		int arr[n];
		for (int i = 0; i < n; i++) scanf("%d", &arr[i]);
		long long ans = sol(arr, 1, k, z) + arr[0];
		printf("%lld\n", ans);
	}
}