#include using namespace std; #define rep(i,a,b) for(ll i=a;i=b;i--) #define ll long long #define ull unsigned ll #define ld long double #define bl __int128_t #define fi first #define se second #define vel vector #define vvel vector #define pll pair #define vepll vector #define vvepll vector #define ves vector #define vem vector #define vvem vector #define pmm pair #define cleout(i) cout<using PQ=priority_queue,greater>; // 上 右 下 左 vector di={-1, 0, 1, 0}; vector dj={ 0, 1, 0,-1}; vector dx={ 0, 1, 0,-1}; vector dy={ 1, 0,-1, 0}; vector ddx={ 1, 1, 1, 0, -1, -1, -1, 0 }; vector ddy={ 1, 0, -1, -1, -1, 0, 1, 1 }; ll inf=1000000000000000000;//1e18 // LLONG_MAX mt19937_64 rng((ull)chrono::steady_clock::now().time_since_epoch().count()); void Alice(){ ll N; cin>>N; cout<> G(N); vel indeg(N); rep(i,0,N-1){ ll x,y; cin>>x>>y; x--; y--; indeg[x]++; indeg[y]++; G[x].insert(y); G[y].insert(x); } map> ma; rep(i,0,N)ma[indeg[i]].insert(i); vel a; rep(i,0,N-2){ auto x=*ma[1].begin(); ma[1].erase(x); ll y=*G[x].begin(); a.push_back(y); indeg[x]--; ma[indeg[y]].erase(y); indeg[y]--; G[y].erase(x); ma[indeg[y]].insert(y); } rep(i,0,a.size())cout<>N; cout<>a[i]; a[i]--; deg[a[i]]++; } map> ma; rep(i,0,N){ ma[deg[i]].insert(i); } rep(i,0,N-2){ ll x=*ma[1].begin(); ll y=a[i]; cout<>_; else _=1; string S; cin>>S; if(S[0]=='A')Alice(); else Bob(); }