#include <bits/stdc++.h>
using namespace std;
void solve(){
int n, m, k;
cin>>n>>m>>k;
k = min(k, m-1);
int res = 0;
vector<int> a(n+2), v(m+1);
for(int i = 1; i <= n; ++i){
cin>>a[i];
}
for(int i = 1; i <= m; ++i){
v[i] = max(a[i], a[n - m + i]);
//cout<<v[i]<<' ';
//cout<<i<<' '<<n - m + i<<endl;
}
//cout<<endl;
vector<vector<int> > b(m+1, vector<int>(m+1));
for(int i = 1; i <= m; ++i){
int cur_min = INT_MAX;
for(int j = i; j <= m; ++j){
cur_min = min(cur_min, v[j]);
b[i][j] = cur_min;
//cout<<cur_min<<' ';
}
//cout<<endl;
}
for(int i = 0; i <= k+1; ++i){
for(int j = 1; j <= i; ++j){
res = max(res, b[j][m - i + j]);
//cout<<j<<' '<<m-i +j<<endl;
}
//cout<<endl;
}
//*/
cout<<res<<'\n';
return;
}
int main() {
int t; cin>>t;
while(t--)solve();
return 0;
}
1384A - Common Prefixes | 371A - K-Periodic Array |
1542A - Odd Set | 1567B - MEXor Mixup |
669A - Little Artem and Presents | 691B - s-palindrome |
851A - Arpa and a research in Mexican wave | 811A - Vladik and Courtesy |
1006B - Polycarp's Practice | 1422A - Fence |
21D - Traveling Graph | 1559B - Mocha and Red and Blue |
1579C - Ticks | 268B - Buttons |
898A - Rounding | 1372B - Omkar and Last Class of Math |
1025D - Recovering BST | 439A - Devu the Singer and Churu the Joker |
1323A - Even Subset Sum Problem | 1095A - Repeating Cipher |
630F - Selection of Personnel | 630K - Indivisibility |
20B - Equation | 600B - Queries about less or equal elements |
1015A - Points in Segments | 1593B - Make it Divisible by 25 |
680C - Bear and Prime 100 | 1300A - Non-zero |
1475E - Advertising Agency | 1345B - Card Constructions |