#include <bits/stdc++.h>
long double pi = acos(-1.0);
const int mod = 1e9 + 7;
using namespace std;
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  int tt;
  cin >> tt;
  while (tt--) {
    long long n, p, k;
    cin >> n >> p >> k;
    vector<long long> a(n);
    for (int(i) = 0; (i) < n; (i)++) cin >> a[i];
    sort((a).begin(), (a).end());
    long long s = 0;
    long long ans = 0;
    for (int i = k - 1; i < n; i += k) {
      s += a[i];
      if (s <= p) {
        ans += k;
      }
    }
    s = 0;
    for (int(i) = 0; (i) < k - 1; (i)++) {
      s += a[i];
      if (s > p) break;
      long long ss = s;
      long long cur = i + 1;
      for (int j = i + k; j < n; j += k) {
        ss += a[j];
        if (ss <= p) {
          cur += k;
        }
      }
      ans = max(ans, cur);
    }
    cout << ans << '\n';
  }
  return 0;
}
