
def parse(expression):
  if expression.count(' ')==0:
    try: return int(expression)
    except: return compute(expression)
  where = {}
  for operator in ['+','-','*','/']:
    try: where[operator] = expression.rindex(operator)
    except: where[operator] = -1
  
  # if there is a plus or a minus, break the expression at the last one,
  # otherwise break it at the last other operator
  z = max( where['+'], where['-'] )
  if z == -1: z = max( where['*'], where['/'] )

  r1, r2 = expression[:z-1], expression[z+2:]
  if expression[z]=='+': return parse(r1) + parse(r2)
  if expression[z]=='-': return parse(r1) - parse(r2)
  if expression[z]=='*': return parse(r1) * parse(r2)
  if expression[z]=='/': return parse(r1) / parse(r2)

def compute(co):
  if not co in values: values[co] = parse(definitions[co])
  return values[co]

from sys import stdin
T = int( stdin.readline() )

for t in range(T):
  stdin.readline()
  N = int( stdin.readline() )
  definitions, values = {}, {}
  for n in range(N):
    cell, expression = stdin.readline().strip().split(' = ')
    definitions[cell] = expression
  output = []
  for cell in definitions: output.append( cell + ' = ' + str(compute(cell)) )
  output.sort()
  if t: print
  for row in output: print row

