#include <stdio.h>
#include <string.h>
int a[100002];
char arr[100002];
void init() { //배열 초기화
for (int i = 0; i < 100002; i++) {
arr[i] = 0;
a[i] = 0;
}
}
int main() {
int t;
scanf("%d", &t);
getchar();
while (t--) {
scanf("%s", arr); getchar();
int arrlength = strlen(arr);
int n = 0;
char temp;
scanf("%d", &n);
getchar();
scanf("%c", &temp);
for (int i = 0; i < n; i++) {
if (i < n - 1) {
scanf("%d", &a[i]);
scanf("%c", &temp);
}
else {
scanf("%d", &a[i]);
scanf("%c", &temp);
getchar();
}
}
int Rcount = 0; //R을 카운트하는 변수
int front = 0, rear = n - 1;
int p = 1;
for (int i = 0; i < arrlength; i++) {
if (arr[i] == 'R') {
Rcount++;
}
else {
if (rear == front - 1 || rear < 0) { p = 0; printf("error\n"); break; }
if (Rcount % 2 == 0) { //R이 2의 배수면 앞의 원소 제거
front++;
}
else { //그게 아니면 뒤의 원소 제거
rear--;
}
}
}
if (p != 0) {
if (Rcount % 2 == 0) { //R을 2의배수 만큼 했을 때 정상출력
printf("[");
for (int i = front; i <= rear; i++) {
if (i < rear)printf("%d,", a[i]);
else printf("%d", a[i]);
}
printf("]\n");
}
else { //그게 아니면 반전 출력
printf("[");
for (int i = rear; i >= front; i--) {
if (i > front) printf("%d,", a[i]);
else printf("%d", a[i]);
}
printf("]\n");
}
}
init();
getchar();
}
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KaW50IGFbMTAwMDAyXTsKY2hhciBhcnJbMTAwMDAyXTsKdm9pZCBpbml0KCkgeyAvL+uwsOyXtCDstIjquLDtmZQKCWZvciAoaW50IGkgPSAwOyBpIDwgMTAwMDAyOyBpKyspIHsgCgkJYXJyW2ldID0gMDsKCQlhW2ldID0gMDsKCX0KfQppbnQgbWFpbigpIHsKCWludCB0OwoJc2NhbmYoIiVkIiwgJnQpOwoJZ2V0Y2hhcigpOwoJd2hpbGUgKHQtLSkgewoJCXNjYW5mKCIlcyIsIGFycik7IGdldGNoYXIoKTsKCQlpbnQgYXJybGVuZ3RoID0gc3RybGVuKGFycik7CgkJaW50IG4gPSAwOwoJCWNoYXIgdGVtcDsKCQlzY2FuZigiJWQiLCAmbik7CgkJZ2V0Y2hhcigpOwoJCXNjYW5mKCIlYyIsICZ0ZW1wKTsKCQlmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewoJCQlpZiAoaSA8IG4gLSAxKSB7CgkJCQlzY2FuZigiJWQiLCAmYVtpXSk7CgkJCQlzY2FuZigiJWMiLCAmdGVtcCk7CgkJCX0KCQkJZWxzZSB7CgkJCQlzY2FuZigiJWQiLCAmYVtpXSk7CgkJCQlzY2FuZigiJWMiLCAmdGVtcCk7CgkJCQlnZXRjaGFyKCk7CgkJCX0KCQl9CgoJCWludCBSY291bnQgPSAwOyAvL1LsnYQg7Lm07Jq07Yq47ZWY64qUIOuzgOyImAoJCWludCBmcm9udCA9IDAsIHJlYXIgPSBuIC0gMTsKCQlpbnQgcCA9IDE7CgkJZm9yIChpbnQgaSA9IDA7IGkgPCBhcnJsZW5ndGg7IGkrKykgewoJCQlpZiAoYXJyW2ldID09ICdSJykgewoJCQkJUmNvdW50Kys7CgkJCX0KCQkJZWxzZSB7CgkJCQlpZiAocmVhciA9PSBmcm9udCAtIDEgfHwgcmVhciA8IDApIHsgcCA9IDA7IHByaW50ZigiZXJyb3JcbiIpOyBicmVhazsgfQoJCQkJaWYgKFJjb3VudCAlIDIgPT0gMCkgeyAvL1LsnbQgMuydmCDrsLDsiJjrqbQg7JWe7J2YIOybkOyGjCDsoJzqsbAKCQkJCQlmcm9udCsrOwoJCQkJfQoJCQkJZWxzZSB7IC8v6re46rKMIOyVhOuLiOuptCDrkqTsnZgg7JuQ7IaMIOygnOqxsAoJCQkJCXJlYXItLTsKCQkJCX0KCQkJfQoJCX0KCQlpZiAocCAhPSAwKSB7CgkJCWlmIChSY291bnQgJSAyID09IDApIHsgLy9S7J2EIDLsnZjrsLDsiJgg66eM7YG8IO2WiOydhCDrlYwg7KCV7IOB7Lac66ClCgkJCQlwcmludGYoIlsiKTsKCQkJCWZvciAoaW50IGkgPSBmcm9udDsgaSA8PSByZWFyOyBpKyspIHsKCQkJCQlpZiAoaSA8IHJlYXIpcHJpbnRmKCIlZCwiLCBhW2ldKTsKCQkJCQllbHNlIHByaW50ZigiJWQiLCBhW2ldKTsKCQkJCX0KCQkJCXByaW50ZigiXVxuIik7CgkJCX0KCQkJZWxzZSB7IC8v6re46rKMIOyVhOuLiOuptCDrsJjsoIQg7Lac66ClCgkJCQlwcmludGYoIlsiKTsKCQkJCWZvciAoaW50IGkgPSByZWFyOyBpID49IGZyb250OyBpLS0pIHsKCQkJCQlpZiAoaSA+IGZyb250KSBwcmludGYoIiVkLCIsIGFbaV0pOwoJCQkJCWVsc2UgcHJpbnRmKCIlZCIsIGFbaV0pOwoJCQkJfQoJCQkJcHJpbnRmKCJdXG4iKTsKCQkJfQoJCX0KCQlpbml0KCk7CgkJZ2V0Y2hhcigpOwoJfQp9