#include <bits/stdc++.h>
using namespace std;
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
const double INF = 1e20;
const int N = 102;
const int M = 1010;
const int K = 10;
int n;
double C, T;
const double Y = 1. / 0.9;
pair<int, int> a[N];
double dp[N][M];
void read() {
  scanf("%d", &n);
  scanf("%lf%lf", &C, &T);
  for (int i = 0; i < n; i++) scanf("%d%d", &a[i].first, &a[i].second);
  sort(a, a + n);
}
int solve() {
  read();
  dp[0][0] = 0;
  for (int it = 1; it <= n; it++) {
    for (int j = 0; j <= it * K; j++) dp[it][j] = INF;
    for (int i = it - 1; i >= 0; i--)
      for (int j = 0; j <= i * K; j++) {
        if (dp[i][j] >= INF / 2) continue;
        dp[i + 1][j + a[it - 1].second] = min(dp[i + 1][j + a[it - 1].second],
                                              dp[i][j] * Y + a[it - 1].first);
      }
  }
  for (int x = n * K; x >= 0; x--)
    for (int p = 0; p <= n; p++) {
      if (p * K < x || dp[p][x] >= INF / 2) continue;
      double X = dp[p][x] * Y;
      double t = X;
      if (C * X >= 1) t = 2 * sqrt(X / C) - 1. / C;
      t += p * 10;
      if (t <= T) return x;
    }
  throw;
}
int main() {
  int t;
  scanf("%d", &t);
  while (t--) printf("%d\n", solve());
  return 0;
}
