#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <algorithm>
#define MAX 10010
using namespace std;
char str[MAX];
int Len;
char R[MAX];
int Count;
int CC;
typedef struct Node{
char date;
struct Node *left,*right;
}Node;
Node aa[MAX];
Node * Create()//由中序和后序推先序
{
Len--;
if(Len < 0) return NULL;
Node *u;
u = &aa[CC++];
u->date = str[Len];
if(str[Len] >= 'A' && str[Len] <= 'Z')
{
u->right= Create();
u->left = Create();
}
else{
u->right= NULL;
u->left = NULL;
}
return u;
}
void LevelOrder(Node *u)
{
Count = 0;
memset(R,0,sizeof(R));
int front,rear;
front = rear = 0;
Node *q[MAX];
Node *p;
q[rear++] = u;
while(front < rear)
{
p = q[front++];
R[Count++] = p->date;
if(p->left != NULL)
q[rear++] = p->left;
if(p->right != NULL)
q[rear++] = p->right;
}
}
int main()
{
int test_case;
cin>>test_case;
Node *root;
while(test_case--)
{
CC = 0;
cin>>str;
Len = strlen(str);
root = Create();
LevelOrder(root);
reverse(R,R + Count);
cout<<R<<endl;
}
return 0;
}