#include <cassert>
#include<iostream>
#include <cctype>

using namespace std;

#if 0

08-182020の方のものを参照。termの書き換えがわからなかった。

#endif

string S;
size_t cur = 0; // 解析開始位置cursor の略記

// 1 文字読んでcur を進める
// 意味:次のreadchar では、次の文字を読む
char readchar() {
	assert(cur < S.size());
	char ret = S[cur];
	cur += 1;
	return ret;
	// return S[cur++]; と一行で書くこともできる
}
char peek() { // 1 文字読むがcur を進めない
	assert(cur < S.size());
	return S[cur];
}


int factorial(int n) {
	assert(n > 0); // (*)
	if (n == 1) return 1;
	return n * factorial(n-1);
}

int digit() {
	//assert(isdigit(peek())); // S[cur] が数字であることを確認
	int n = readchar() - '0'; // ’0’ を0 に変換
	return n;
}

int number() {
	int n = digit();
	while (cur < S.size() && isdigit(peek())) // 次も数字か1 文字先読
		n = n*10 + digit();
	return n;
}
int expression(); // 前方宣言
int factor() {
	if (peek() != '(') return number();
	cur += 1;
	int n = expression();
	assert(peek() == ')');
	cur += 1;
	return n;
}

int term() {
	int a = factor();
	while (cur < S.size()&& (peek() == '*' || peek() == '/')) {
		char op = readchar();
		int b = factor();
		if (op == '*') a *= b; else a /= b;
	}
	return a;
}

int expression() {
	int a = term();
	while ((cur < S.size())&& (peek() == '+' || peek() == '-')) {
		char op = readchar();
		int b = term();
		if (op == '+') a += b; else a -= b;
	}
	return a;
}



int parse(){
	return expression();
}

int main() {
	//int a = parse();
	//cout << a << endl;
	int n;
	cin >> n;
	for(int i = 0; i < n; ++i){
		cur = 0;
		cin >> S;
		S.resize(S.size()-1); // 最後の=を無視
		cout << expression() << endl;
	}
}

