#include <bits/stdc++.h>
using namespace std;
int main() {
  int t, n, p, k;
  cin >> t;
  for (int i = 0; i < t; i++) {
    cin >> n >> p >> k;
    vector<int> a(n);
    for (int j = 0; j < n; j++) {
      cin >> a[j];
    }
    sort(a.begin(), a.end());
    vector<int> dp(n);
    int ret = 0;
    for (int j = 0; j < n; j++) {
      if (j == 0) {
        dp[j] = a[j];
      } else if (j < k - 1) {
        dp[j] = dp[j - 1] + a[j];
      } else {
        if (j == k - 1)
          dp[j] = a[j];
        else
          dp[j] = dp[j - k] + a[j];
      }
      if (dp[j] <= p) {
        ret = max(j + 1, ret);
      }
    }
    cout << ret << endl;
  }
}
