#include<iostream>
#include<vector>
#include<algorithm>
#include<utility>
#include<string>
#include<cmath>
#include<cstring>
#include<queue>
#include<map>
#include<climits>
#include<set>

#include<tuple>
#include<stack>


using namespace std;
typedef pair<int, int> pii;
typedef long long int ll;
typedef pair<ll, ll> pll;
typedef tuple<int, int, int> tpl;
int dx[4] = { 1,0,0,-1 };
int dy[4] = { 0,1,-1,0 };

#define ARRAY_MAX 100005

const int INF = 1e9 + 7;
const int MOD = 1e9 + 7;


bool used[30];

int main() {

	int n;
	cin >> n;
	for (int i = 0; i < n; i++)
	{
		string s;
		cin >> s;
		deque<char> que;

		char fr = s[0];
		char bk = s[0];

		que.push_back(s[0]);
		used[s[0] - 'a'] = 1;
		for (int i = 0; i < s.size(); i += 3)
		{
			if (i == 0)
			{
				continue;
			}
			if (s[i - 1] == '>')
			{
				if (used[s[i] - 'a'] == 0)
				{
					que.push_back(s[i]);
					used[s[i] - 'a'] = 1;
				}
				bk = s[i];
				
			}
			else
			{
				if (used[s[i] - 'a'] == 0)
				{
					que.push_front(s[i]);
					used[s[i] - 'a'] = 1;
				}
				fr = s[i];
			}
		}

		int cnt = 0;
		for (auto itr : que)
		{
			if (cnt == 0)
			{
				cout << itr;
			}
		}
		cout << endl;

		for (int i = 0; i < 30; i++)
		{
			used[i] = 0;
		}
		que.clear();
	}

	return 0;
}
