#include <bits/stdc++.h>
using namespace std;
#define FOR(i,k,n) for(int i = (int)(k); i < (int)(n); i++)
#define REP(i,n) FOR(i,0,n)
#define ALL(a) a.begin(), a.end()
#define MS(m,v) memset(m,v,sizeof(m))
typedef long long ll;
typedef long double ld;
typedef vector<int> vi;
typedef vector<string> vs;
typedef pair<int, int> pii;
const int MOD = 1e9 + 7;
template<class T> T &chmin(T &a, const T &b) { return a = min(a, b); }
template<class T> T &chmax(T &a, const T &b) { return a = max(a, b); }
template<class T>
istream& operator >> (istream& is, vector<T>& v)
{
	for (auto &i : v) is >> i;
	return is;
}
template<class T>
ostream& operator<<(ostream& os, vector<T>& v)
{
	const string delimiter = "\n";
	REP(i, v.size())
	{
		os << v[i];
		if (i != v.size() - 1) os << delimiter;
	}
	return os;
}
/*--------------------template--------------------*/

int add();

string s;
int p;

int num()
{
	int res;
	if (s[p] == '(')
	{
		p++;
		res = add();
		assert(s[p] == ')');
		p++;
	}
	else if (isdigit(s[p]))
	{
		res = 0;
		while (p < s.size() && isdigit(s[p]))
		{
			res *= 10;
			res += s[p] - '0';
			p++;
		}
	}
	else assert(false);
	return res;
}

int mul()
{
	int res = num();
	while (p < s.size() && (s[p] == '*' || s[p] == '/'))
	{
		char c = s[p];
		p++;
		int r = num();
		if (c == '*')
		{
			res *= r;
		}
		else if (c == '/')
		{
			res /= r;
		}
	}
	return res;
}

int add()
{
	int res = mul();
	while (p < s.size() && (s[p] == '+' || s[p] == '-'))
	{
		char c = s[p];
		p++;
		int r = mul();
		if (c == '+')
		{
			res += r;
		}
		else if (c == '-')
		{
			res -= r;
		}
	}
	return res;
}

int solve()
{
	p = 0;
	return add();
}

int main()
{
	cin.sync_with_stdio(false); cout << fixed << setprecision(10);
	int n; cin >> n;
	REP(cs, n)
	{
		cin >> s;
		s = s.substr(0, s.size() - 1);
		cout << solve() << endl;
	}
	return 0;
}
