#include <bits/stdc++.h>
using namespace std;

#define int long long
const int LINF = (int)2e18;
const int mxN = (int)1e2+10;
int n, A, B, a[mxN], x[mxN], y[mxN], c[mxN];

bool works(int remA, int remB){
    for(int i = 0; i < n; i++)
        if((A-remA)*x[i] + (B-remB)*y[i] > c[i])
            return false;
    return true;
}

int bin(int remA){
    int l = 0, r = B-1;
    if(!works(remA,r) or remA<0 or remA>=A) return LINF;
    while(l<r){
        int mid = (l+r)/2;
        if(works(remA, mid)) r=mid;
        else l=mid+1;
    }
    return remA+l;
}

void solve(){
    cin >> n >> A >> B; int ans = A+B-2;
    for(int i = 0; i < n; i++) cin >> x[i] >> y[i] >> c[i];
    for(int _ = 0; _ < 2; _++){
        int l = 0, r = A-1;
        while(r-l>3){
            int m = (r-l)/3;
            int X = bin(l+m), Y = bin(r-m);
            if(X==LINF or X>Y) l+=m;
            else r-=m;
        }
        for(int i = l; i <= r; i++)
            ans = min(ans, bin(i));
        swap(A,B);
        for(int i = 0; i < n; i++) swap(x[i],y[i]);
    }
    cout << ans << "\n";
}

int32_t main() {
    ios_base::sync_with_stdio(false); cin.tie(0);
	int t = 1; cin >> t;
    while(t--) solve();
}
