#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int mn = 2e5 + 10;
int n, m;
ll t;
int p[mn], xu[mn];
bool check(int x)
{
int lim = xu[x]; // 至少需要xu[x]的能力完成x个,大于xu[x]可能完成不了
int cnt = 0, sum = 0;
ll tT = 0, T = 0;
for (int i = 1; i <= n; i++)
{
if (p[i] > lim)
continue;
tT += (ll)p[i];
T += (ll)p[i];
if (T > t) // 总时间>工作时长
break;
cnt++;
sum++;
if (cnt == m)
{
T += tT;
tT = 0;
cnt = 0;
}
}
if (sum >= x) // 总完成任务数
return 1;
else
return 0;
}
int main()
{
int T;
cin >> T;
while (T--)
{
scanf("%d %d %lld", &n, &m, &t);
for (int i = 1; i <= n; i++)
{
cin >> p[i];
xu[i] = p[i];
}
sort(xu + 1, xu + n + 1);
int l = 1, r = n, ans = 0;
while (l <= r) // 二分可完成任务数量
{
int mid = (l + r) / 2;
if (check(mid))
{
ans = mid;
l = mid + 1;
}
else
r = mid - 1;
}
if (ans == 0)
cout << "0 1" << endl;
else
cout << ans << ' ' << xu[ans] << endl;
}
return 0;
}