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

bool f(int mid, vector<int> &a, int n, int m, int k){
    int total=0;
    for(int i=0; i<n; i++){
        if (m-i <= 0) break;
        int min_steps=ceil(double(a[i])/(m-i));
        if (min_steps <= mid) total++;
    }
    return total >= k;
}

int main() {
	int t; cin>>t;
	while(t--){
	    int n, m, k; cin>>n>>m>>k;
	    vector<int> a(n); for(int &i: a) cin>>i;
	    int l=1, h=1e9, res=-1;
	    while(l<=h){
	        int mid=l+(h-l)/2;
	        if (f(mid, a, n, m, k)) res=mid, h=mid-1;
	        else l=mid+1;
	    }
	    cout << res << endl;
	}
}
