#include<cstdio>
#include<vector>
#include<algorithm>
#include<cstring>
using namespace std;
vector<int>g[26];
vector<int>ans;
bool used[26];
void dfs(int pos){
    if(used[pos])return;
    used[pos]=true;
    for(int i=0;i<g[pos].size();i++){
        dfs(g[pos][i]);
    }
    ans.push_back(pos);
}
int main(){
    int n;
    scanf("%d",&n);
    while(n--){
        fill_n(g,26,vector<int>(0));
        fill_n(used,26,false);
        ans.clear();
        char str[1025];
        scanf("%s",str);
        if(strlen(str)==1){
            printf("%c\n",str[0]);
            continue;
        }
        for(int i=1;str[i];i+=3){
            int v1=str[i-1]-'a';
            int v2=str[i+2]-'a';
            if(str[i]=='-'){
                g[v1].push_back(v2);
            }
            else{
                g[v2].push_back(v1);
            }
        }
        for(int i=0;i<26;i++){
            sort(g[i].begin(),g[i].end());
            g[i].erase(unique(g[i].begin(),g[i].end()),g[i].end());
        }
        for(int i=0;i<26;i++)if(g[i].size())dfs(i);
        reverse(ans.begin(),ans.end());
        for(int i=0;i<ans.size();i++){
            printf("%c",ans[i]+'a');
        }
        puts("");
    }

    return 0;
}