//AlgebraicExpression
//cho 1 cay nhi phan, tinh ra ket qua cuoi cung
#include <iostream>
#include <cstring>
#include <cstdlib>
using namespace std;
int N;
int Number[1001], Firstchild[1001], Secondchild[1001];
char Operator[1001];
int main(int argc, char** argv)
{
int test_case;
freopen("Testcase.txt", "r", stdin);
for(test_case = 1; test_case <= 10; ++test_case)
{
int i;
memset(Firstchild, 0, sizeof(int) * 1001);
memset(Secondchild, 0, sizeof(int) * 1001);
memset(Number, 0, sizeof(int) * 1001);
memset(Operator, 0, sizeof(char) * 1001);
cin >> N;
int max;
for(i = 0; i < N; i++)
{
int addr;
char buf[10];
cin >> addr;
cin >> buf;
if ((buf[0] == '+') || (buf[0] == '-') || (buf[0] == '*') || (buf[0] == '/'))
{
Operator[addr] = buf[0];
cin >> Firstchild[addr] >> Secondchild[addr];
max = addr;
}
else Number[addr] = atoi(buf);
}
for(i = max; i >=1; i--)
{
if(Operator[i] == '+')
Number[i] = Number[Firstchild[i]] + Number[Secondchild[i]];
if(Operator[i] == '-')
Number[i] = Number[Firstchild[i]] - Number[Secondchild[i]];
if(Operator[i] == '*')
Number[i] = Number[Firstchild[i]] * Number[Secondchild[i]];
if(Operator[i] == '/')
Number[i] = Number[Firstchild[i]] / Number[Secondchild[i]];
}
cout << "#" << test_case;
cout << " " << Number[1] << endl;;
}
return 0;
}