#if __has_include() #include using namespace atcoder; #else #include #if __has_include() #include using namespace atcoder; #endif #endif using namespace std; #define int long long #define all(x) (x).begin(), (x).end() #define rep(i, n) for (int i = 0; i < (int)(n); i++) #define rrep(i, n) for(int i = (int)((n) - 1); i >= 0; i--) template bool chmax(T &a,const T &b){if(a bool chmin(T &a,const T &b){if(a>b){a=b;return true;}return false;} // using mint = modint; void solve(){ string r, s; int k; cin >> r >> s >> k; int n = r.size(); if(s == "Warong"){ rep(i, k) r.at(i) = 'A'; int acnt = 0; for(int i = k; i < n; i++) acnt += r.at(i) == 'A'; if(acnt == n - k - 1) for(int i = k; i < n; i++) if(r.at(i) != 'A') r.at(i) = 'W'; } else{ // 最初K文字にWが含まれるか、すべてがA bool all_a = true, first_w = false; rep(i, n) all_a &= r.at(i) != 'W'; rep(i, k) first_w |= r.at(i) != 'A'; if(!all_a){ // 前半K文字にWが含まれなくてはならない // 前半K文字の?が1つかつWがないなら?をWに int qcnt = 0, wcnt = 0; rep(i, k){ qcnt += r.at(i) == '?'; wcnt += r.at(i) == 'W'; } if(qcnt == 1 && wcnt == 0) rep(i, k) if(r.at(i) == '?') r.at(i) = 'W'; } if(!first_w){ for(auto&& c : r) c = 'A'; } } println("{}", r); } signed main(){ int t; cin >> t; while(t--) solve(); }