#include <bits/stdc++.h>
#include <vector>
#define ll long long
#define ld long double
using namespace std;
const ld PI=3.141592654;
ld sq(ld a) {return a*a;}
ld dist(ld a, ld b, ld x, ld y) {return sqrtl(sq((x-a))+sq(y-b));}
vector<set<ll>> adj;
vector<bool>vis;
ll c=0;
void dfs(ll x){
vis[x]=1;
c++;
for(auto ch:adj[x]){
if(!vis[ch]){
dfs(ch);
}
}
}
vector<ll>ans;
ll dp(ll ind,ll m1,ll m2,ll c){
if(ind==ans.size()){
return c;
}
ll ch1=1e15,ch2=1e15,ch3=1e15;
if(ans[ind]<=m1){
ch1=dp(ind+1,m1-ans[ind],m2,c);
}
if(ans[ind]<=m2){
ch2=dp(ind+1,m1,m2-ans[ind],c);
}
ch3=dp(ind+1,m1,m2,c+=ans[ind]);
return min({ch1,ch2,ch3});
}
void solve(){
ll n,m1,m2;
cin >> n >> m1 >> m2;
map<string,ll>mp;
vis.assign(2*n+10,0);
ll i=1;
adj.assign(2*n+10,{});
for(ll j=0;j<n;j++){
string a,b;
cin >> a >>b;
if(mp[a]==0){
mp[a]=i;
i++;
}
if(mp[b]==0){
mp[b]=i;
i++;
}
adj[mp[a]].insert(mp[b]);
adj[mp[b]].insert(mp[a]);
}
for(ll l=1;l<i;l++){
if(!vis[l]){
c=0;
dfs(l);
ans.push_back(c);
}
}
cout << dp(0,m1,m2,0);
}
int main(){
freopen("land.in","r",stdin);
ll t=1;
cin >> t;
while(t--){
solve();
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNpbmNsdWRlIDx2ZWN0b3I+CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgbGQgbG9uZyBkb3VibGUKCgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjb25zdCBsZCBQST0zLjE0MTU5MjY1NDsKCmxkIHNxKGxkIGEpIHtyZXR1cm4gYSphO30KbGQgZGlzdChsZCBhLCBsZCBiLCBsZCB4LCBsZCB5KSB7cmV0dXJuIHNxcnRsKHNxKCh4LWEpKStzcSh5LWIpKTt9CgoKCnZlY3RvcjxzZXQ8bGw+PiBhZGo7CnZlY3Rvcjxib29sPnZpczsKbGwgYz0wOwp2b2lkIGRmcyhsbCB4KXsKICAgIHZpc1t4XT0xOwogICAgYysrOwogICAgZm9yKGF1dG8gY2g6YWRqW3hdKXsKICAgICAgICBpZighdmlzW2NoXSl7CiAgICAgICAgICAgIGRmcyhjaCk7CiAgICAgICAgfQogICAgfQp9CgogICAgdmVjdG9yPGxsPmFuczsKbGwgZHAobGwgaW5kLGxsIG0xLGxsIG0yLGxsIGMpewogICAgaWYoaW5kPT1hbnMuc2l6ZSgpKXsKICAgICAgICByZXR1cm4gYzsKICAgIH0KICAgIGxsIGNoMT0xZTE1LGNoMj0xZTE1LGNoMz0xZTE1OwogICAgaWYoYW5zW2luZF08PW0xKXsKICAgICAgICBjaDE9ZHAoaW5kKzEsbTEtYW5zW2luZF0sbTIsYyk7CiAgICB9CiAgICBpZihhbnNbaW5kXTw9bTIpewogICAgICAgIGNoMj1kcChpbmQrMSxtMSxtMi1hbnNbaW5kXSxjKTsKICAgIH0KICAgIGNoMz1kcChpbmQrMSxtMSxtMixjKz1hbnNbaW5kXSk7CiAgICByZXR1cm4gbWluKHtjaDEsY2gyLGNoM30pOwp9CgoKCgp2b2lkIHNvbHZlKCl7CiAgICBsbCBuLG0xLG0yOwogICAgY2luID4+IG4gPj4gbTEgPj4gbTI7CiAgICBtYXA8c3RyaW5nLGxsPm1wOwogICAgdmlzLmFzc2lnbigyKm4rMTAsMCk7CiAgICBsbCBpPTE7CiAgICBhZGouYXNzaWduKDIqbisxMCx7fSk7CiAgICBmb3IobGwgaj0wO2o8bjtqKyspewogICAgICAgIHN0cmluZyBhLGI7CiAgICAgICAgY2luID4+IGEgPj5iOwogICAgICAgIGlmKG1wW2FdPT0wKXsKICAgICAgICAgICAgbXBbYV09aTsKICAgICAgICAgICAgaSsrOwogICAgICAgIH0KICAgICAgICBpZihtcFtiXT09MCl7CiAgICAgICAgICAgIG1wW2JdPWk7CiAgICAgICAgICAgIGkrKzsKICAgICAgICB9CiAgICAgICAgYWRqW21wW2FdXS5pbnNlcnQobXBbYl0pOwogICAgICAgIGFkalttcFtiXV0uaW5zZXJ0KG1wW2FdKTsKICAgIH0KICAgIGZvcihsbCBsPTE7bDxpO2wrKyl7CiAgICAgICAgaWYoIXZpc1tsXSl7CiAgICAgICAgICAgIGM9MDsKICAgICAgICAgICAgZGZzKGwpOwogICAgICAgICAgICBhbnMucHVzaF9iYWNrKGMpOwogICAgICAgIH0KICAgIH0KICAgIGNvdXQgPDwgZHAoMCxtMSxtMiwwKTsKfQoKaW50IG1haW4oKXsKICAgIGZyZW9wZW4oImxhbmQuaW4iLCJyIixzdGRpbik7CiAgICBsbCB0PTE7CiAgICBjaW4gPj4gdDsKICAgIHdoaWxlKHQtLSl7CiAgICAgICAgc29sdmUoKTsKICAgIH0KfQ==