#include <bits/stdc++.h>
using namespace std;
struct pair_hash {
  template <class T1, class T2>
  size_t operator()(const pair<T1, T2> &pair) const {
    return hash<T1>()(pair.first) ^ hash<T2>()(pair.second);
  }
};
bool compare(long long int a, long long int b) { return a > b; }
long long int findlow(vector<long long int> a, long long int s, long long int e,
                      long long int d) {
  long long int res = max(a[s + d], a[e]);
  for (long long int i = 0; i < d + 1; i++) {
    long long int f = i;
    long long int b = d - f;
    long long int r = max(a[s + f], a[e - b]);
    res = min(res, r);
  }
  return res;
}
long long int solve(vector<long long int> a, long long int c, long long int d) {
  long long int res = 0;
  for (long long int i = 0; i < c + 1; i++) {
    long long int f = i;
    long long int b = c - f;
    res = max(res, findlow(a, f, a.size() - 1 - b, d));
  }
  return res;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  ;
  long long int t;
  cin >> t;
  while (t--) {
    long long int n, m, k;
    cin >> n >> m >> k;
    vector<long long int> a(n);
    for (long long int i = 0; i < n; i++) cin >> a[i];
    long long int c = min(m - 1, k);
    long long int d = (m - 1) - c;
    long long int low = solve(a, c, d);
    cout << low << "\n";
  }
}
