#include<bits/stdc++.h>
#include<ext/pb_ds/assoc_container.hpp>
#include<ext/pb_ds/tree_policy.hpp>
#define ll long long int
#define ld long double
using namespace std;
using namespace __gnu_pbds;
#define FAST ios_base::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
typedef tree<ll, null_type, less_equal<ll>, rb_tree_tag,tree_order_statistics_node_update> ordered_multiset;
const ll N = 1e5 + 5, MOD1 = 998244353, MOD2 = 1e9 + 7;
bool valid(vector<ll>&v, ll n, ll mid, ll k){
for(int i = 0;i<n;i++){
if((v[i] - 1) / mid <= k){
k -= (v[i] - 1) / mid;
}else{
return 0;
}
}
return 1;
}
void solve(ld t) {
ll n, k;
cin >> n >> k;
vector<ll>v(n);
for(int i = 0;i<n;i++) cin >> v[i];
ll l = 0, r = 1e9 + 1, mid, ans;
while(l < r - 1){
mid = (l + r) >> 1;
if(valid(v,n,mid, k)){
ans = r = mid;
}else{
l = mid;
}
}
cout << ans;
}
signed main() {
FAST
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
int t = 1;
cin >> t;
for (ld i = 1; i <= t; i++) {
solve(i);
if (i < t) cout << "\n";
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2luY2x1ZGU8ZXh0L3BiX2RzL2Fzc29jX2NvbnRhaW5lci5ocHA+CiNpbmNsdWRlPGV4dC9wYl9kcy90cmVlX3BvbGljeS5ocHA+CiNkZWZpbmUgbGwgbG9uZyBsb25nIGludAojZGVmaW5lIGxkIGxvbmcgZG91YmxlCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnVzaW5nIG5hbWVzcGFjZSBfX2dudV9wYmRzOwojZGVmaW5lIEZBU1QgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSksIGNpbi50aWUobnVsbHB0ciksIGNvdXQudGllKG51bGxwdHIpOwp0eXBlZGVmIHRyZWU8bGwsIG51bGxfdHlwZSwgbGVzc19lcXVhbDxsbD4sIHJiX3RyZWVfdGFnLHRyZWVfb3JkZXJfc3RhdGlzdGljc19ub2RlX3VwZGF0ZT4gb3JkZXJlZF9tdWx0aXNldDsKY29uc3QgbGwgTiA9IDFlNSArIDUsIE1PRDEgPSA5OTgyNDQzNTMsIE1PRDIgPSAxZTkgKyA3OwoKYm9vbCB2YWxpZCh2ZWN0b3I8bGw+JnYsIGxsIG4sIGxsIG1pZCwgbGwgayl7CiAgICBmb3IoaW50IGkgPSAwO2k8bjtpKyspewogICAgICAgIGlmKCh2W2ldIC0gMSkgLyBtaWQgPD0gayl7CiAgICAgICAgICAgIGsgLT0gKHZbaV0gLSAxKSAvIG1pZDsKICAgICAgICB9ZWxzZXsKICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIDE7Cn0KCnZvaWQgc29sdmUobGQgdCkgewogICAgbGwgbiwgazsKICAgIGNpbiA+PiBuID4+IGs7CiAgICB2ZWN0b3I8bGw+dihuKTsKICAgIGZvcihpbnQgaSA9IDA7aTxuO2krKykgY2luID4+IHZbaV07CiAgICBsbCBsID0gMCwgciA9IDFlOSArIDEsIG1pZCwgYW5zOwogICAgd2hpbGUobCA8IHIgLSAxKXsKICAgICAgICBtaWQgPSAobCArIHIpID4+IDE7CiAgICAgICAgaWYodmFsaWQodixuLG1pZCwgaykpewogICAgICAgICAgICBhbnMgPSByID0gbWlkOwogICAgICAgIH1lbHNlewogICAgICAgICAgICBsID0gbWlkOwogICAgICAgIH0KICAgIH0KICAgIGNvdXQgPDwgYW5zOwp9CgpzaWduZWQgbWFpbigpIHsKICAgIEZBU1QKI2lmbmRlZiBPTkxJTkVfSlVER0UKICAgIGZyZW9wZW4oImlucHV0LnR4dCIsICJyIiwgc3RkaW4pOwogICAgZnJlb3Blbigib3V0cHV0LnR4dCIsICJ3Iiwgc3Rkb3V0KTsKI2VuZGlmCiAgICBpbnQgdCA9IDE7CiAgICBjaW4gPj4gdDsKICAgIGZvciAobGQgaSA9IDE7IGkgPD0gdDsgaSsrKSB7CiAgICAgICAgc29sdmUoaSk7CiAgICAgICAgaWYgKGkgPCB0KSBjb3V0IDw8ICJcbiI7CiAgICB9Cn0=