#include <iostream>
#include <stack>
#include <string>
#include <sstream>
#include <vector>
#include <cctype> // for isdigit
using namespace std;
bool isNumber(const string &s) {
if (s.empty()) return false;
size_t start = 0;
if (s[0] == '-') {
if (s.size() == 1) return false; // Only '-'
start = 1;
}
for (size_t i = start; i < s.size(); ++i) {
if (!isdigit(s[i])) {
return false;
}
}
return true;
}
int main() {
int t;
cin >> t;
cin.ignore();
while (t--) {
int n;
cin >> n;
cin.ignore();
string line;
getline(cin, line);
vector<string> tokens;
stringstream ss(line);
string token;
while (ss >> token) {
tokens.push_back(token);
}
if (tokens.size() != n) {
cout << "Invalid Expression" << endl;
continue;
}
stack<long long> st;
bool valid = true;
for (int i = tokens.size() - 1; i >= 0; --i) {
string tok = tokens[i];
if (isNumber(tok)) {
st.push(stoll(tok));
} else if (tok == "+" || tok == "-" || tok == "*" || tok == "/") {
if (st.size() < 2) {
valid = false;
break;
}
long long a = st.top(); st.pop();
long long b = st.top(); st.pop();
if (tok == "+") st.push(a + b);
else if (tok == "-") st.push(a - b);
else if (tok == "*") st.push(a * b);
else if (tok == "/") {
if (b == 0) {
valid = false;
break;
}
st.push(a / b);
}
} else {
valid = false;
break;
}
}
if (valid && st.size() == 1) {
cout << st.top() << endl;
} else {
cout << "Invalid Expression" << endl;
}
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RhY2s+CiNpbmNsdWRlIDxzdHJpbmc+CiNpbmNsdWRlIDxzc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8Y2N0eXBlPiAvLyBmb3IgaXNkaWdpdAoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmJvb2wgaXNOdW1iZXIoY29uc3Qgc3RyaW5nICZzKSB7CiAgICBpZiAocy5lbXB0eSgpKSByZXR1cm4gZmFsc2U7CiAgICBzaXplX3Qgc3RhcnQgPSAwOwogICAgaWYgKHNbMF0gPT0gJy0nKSB7CiAgICAgICAgaWYgKHMuc2l6ZSgpID09IDEpIHJldHVybiBmYWxzZTsgLy8gT25seSAnLScKICAgICAgICBzdGFydCA9IDE7CiAgICB9CiAgICBmb3IgKHNpemVfdCBpID0gc3RhcnQ7IGkgPCBzLnNpemUoKTsgKytpKSB7CiAgICAgICAgaWYgKCFpc2RpZ2l0KHNbaV0pKSB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gdHJ1ZTsKfQoKaW50IG1haW4oKSB7CiAgICBpbnQgdDsKICAgIGNpbiA+PiB0OwogICAgY2luLmlnbm9yZSgpOwoKICAgIHdoaWxlICh0LS0pIHsKICAgICAgICBpbnQgbjsKICAgICAgICBjaW4gPj4gbjsKICAgICAgICBjaW4uaWdub3JlKCk7CgogICAgICAgIHN0cmluZyBsaW5lOwogICAgICAgIGdldGxpbmUoY2luLCBsaW5lKTsKCiAgICAgICAgdmVjdG9yPHN0cmluZz4gdG9rZW5zOwogICAgICAgIHN0cmluZ3N0cmVhbSBzcyhsaW5lKTsKICAgICAgICBzdHJpbmcgdG9rZW47CiAgICAgICAgd2hpbGUgKHNzID4+IHRva2VuKSB7CiAgICAgICAgICAgIHRva2Vucy5wdXNoX2JhY2sodG9rZW4pOwogICAgICAgIH0KCiAgICAgICAgaWYgKHRva2Vucy5zaXplKCkgIT0gbikgewogICAgICAgICAgICBjb3V0IDw8ICJJbnZhbGlkIEV4cHJlc3Npb24iIDw8IGVuZGw7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KCiAgICAgICAgc3RhY2s8bG9uZyBsb25nPiBzdDsKICAgICAgICBib29sIHZhbGlkID0gdHJ1ZTsKCiAgICAgICAgZm9yIChpbnQgaSA9IHRva2Vucy5zaXplKCkgLSAxOyBpID49IDA7IC0taSkgewogICAgICAgICAgICBzdHJpbmcgdG9rID0gdG9rZW5zW2ldOwoKICAgICAgICAgICAgaWYgKGlzTnVtYmVyKHRvaykpIHsKICAgICAgICAgICAgICAgIHN0LnB1c2goc3RvbGwodG9rKSk7CiAgICAgICAgICAgIH0gZWxzZSBpZiAodG9rID09ICIrIiB8fCB0b2sgPT0gIi0iIHx8IHRvayA9PSAiKiIgfHwgdG9rID09ICIvIikgewogICAgICAgICAgICAgICAgaWYgKHN0LnNpemUoKSA8IDIpIHsKICAgICAgICAgICAgICAgICAgICB2YWxpZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgbG9uZyBsb25nIGEgPSBzdC50b3AoKTsgc3QucG9wKCk7CiAgICAgICAgICAgICAgICBsb25nIGxvbmcgYiA9IHN0LnRvcCgpOyBzdC5wb3AoKTsKCiAgICAgICAgICAgICAgICBpZiAodG9rID09ICIrIikgc3QucHVzaChhICsgYik7CiAgICAgICAgICAgICAgICBlbHNlIGlmICh0b2sgPT0gIi0iKSBzdC5wdXNoKGEgLSBiKTsKICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRvayA9PSAiKiIpIHN0LnB1c2goYSAqIGIpOwogICAgICAgICAgICAgICAgZWxzZSBpZiAodG9rID09ICIvIikgewogICAgICAgICAgICAgICAgICAgIGlmIChiID09IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIHN0LnB1c2goYSAvIGIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgdmFsaWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAodmFsaWQgJiYgc3Quc2l6ZSgpID09IDEpIHsKICAgICAgICAgICAgY291dCA8PCBzdC50b3AoKSA8PCBlbmRsOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGNvdXQgPDwgIkludmFsaWQgRXhwcmVzc2lvbiIgPDwgZW5kbDsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIDA7Cn0=