#include <bits/stdc++.h>
using namespace std;
const int N = 111;
const double INF = 1e200;
double dp[N][10 * N];
struct problem {
  int a, p;
  bool operator<(const problem &o) const { return a > o.a; }
} p[N];
int n;
double C, T;
double solve(double x) {
  x /= 0.9;
  auto t = (sqrt(C * x) - 1) / C;
  t = max(t, 0.0);
  return x / (1 + C * t) + t;
}
int main() {
  int tc;
  cin >> tc;
  while (tc--) {
    cin >> n >> C >> T;
    for (int i = 0; i < n; i++) cin >> p[i].a >> p[i].p;
    sort(p, p + n);
    fill(dp[0], dp[N], INF);
    dp[0][0] = 0;
    int sum = 0;
    for (int i = n - 1; i >= 0; i--) {
      for (int k = n - 1 - i; k >= 0; k--) {
        for (int s = sum; s >= 0; s--)
          if (dp[k][s] < INF) {
            dp[k + 1][s + p[i].p] =
                min(dp[k + 1][s + p[i].p], dp[k][s] / 0.9 + p[i].a);
          }
      }
      sum += p[i].p;
    }
    int ans = 0;
    for (int s = sum; s > 0; s--) {
      for (int k = 0; k <= n; k++) {
        if (dp[k][s] < INF) {
          auto cost = k * 10 + solve(dp[k][s]);
          if (cost <= T) {
            ans = max(ans, s);
          }
        }
      }
    }
    cout << ans << endl;
  }
  return 0;
}
