#! /usr/bin/env python
## spoj.pl/problems/ARITH
## 31.07.2011 cmiN
from decimal import getcontext, Decimal
def init():
#from sys import stdin
#stdin = open("arith.in", "rt")
getcontext().prec = 1024
def add():
global second
second = sub + second
res = str(Decimal(first) + Decimal(second))
sep1 = max(len(first), len(second))
sep2 = max(sep1, len(res))
pat = "%" + str(sep2) + "s"
print pat % first
print pat % second
print pat % ("-" * sep1)
print pat % res
def mul():
res = str(Decimal(first) * Decimal(second))
sep1 = max(len(first), len(second) + 1)
sep2 = max(sep1, len(res))
pat = "%" + str(sep2) + "s"
print pat % first
print pat % ("*" + second)
print pat % ("-" * sep1)
seclen = len(second)
if seclen > 1:
for i in xrange(1, seclen + 1):
print ("%" + str(sep2 - i + 1) + "s") % (int(second[-i]) * Decimal(first))
print "-" * sep2
print pat % res
def process():
global first, second, sub
tests = input()
while tests:
var = raw_input()
for sub in var:
if not sub.isdigit():
break
(first, second) = var.split(sub)
if sub in "+-":
add()
else:
mul()
print
tests -= 1
def main():
init()
process()
if __name__ == "__main__":
main()
IyEgL3Vzci9iaW4vZW52IHB5dGhvbgojIyBzcG9qLnBsL3Byb2JsZW1zL0FSSVRICiMjIDMxLjA3LjIwMTEgY21pTgoKZnJvbSBkZWNpbWFsIGltcG9ydCBnZXRjb250ZXh0LCBEZWNpbWFsCgpkZWYgaW5pdCgpOgogICAgI2Zyb20gc3lzIGltcG9ydCBzdGRpbgogICAgI3N0ZGluID0gb3BlbigiYXJpdGguaW4iLCAicnQiKQogICAgZ2V0Y29udGV4dCgpLnByZWMgPSAxMDI0CgpkZWYgYWRkKCk6CiAgICBnbG9iYWwgc2Vjb25kCiAgICBzZWNvbmQgPSBzdWIgKyBzZWNvbmQKICAgIHJlcyA9IHN0cihEZWNpbWFsKGZpcnN0KSArIERlY2ltYWwoc2Vjb25kKSkKICAgIHNlcDEgPSBtYXgobGVuKGZpcnN0KSwgbGVuKHNlY29uZCkpCiAgICBzZXAyID0gbWF4KHNlcDEsIGxlbihyZXMpKQogICAgcGF0ID0gIiUiICsgc3RyKHNlcDIpICsgInMiCiAgICBwcmludCBwYXQgJSBmaXJzdAogICAgcHJpbnQgcGF0ICUgc2Vjb25kCiAgICBwcmludCBwYXQgJSAoIi0iICogc2VwMSkKICAgIHByaW50IHBhdCAlIHJlcwoKZGVmIG11bCgpOgogICAgcmVzID0gc3RyKERlY2ltYWwoZmlyc3QpICogRGVjaW1hbChzZWNvbmQpKQogICAgc2VwMSA9IG1heChsZW4oZmlyc3QpLCBsZW4oc2Vjb25kKSArIDEpCiAgICBzZXAyID0gbWF4KHNlcDEsIGxlbihyZXMpKQogICAgcGF0ID0gIiUiICsgc3RyKHNlcDIpICsgInMiCiAgICBwcmludCBwYXQgJSBmaXJzdAogICAgcHJpbnQgcGF0ICUgKCIqIiArIHNlY29uZCkKICAgIHByaW50IHBhdCAlICgiLSIgKiBzZXAxKQogICAgc2VjbGVuID0gbGVuKHNlY29uZCkKICAgIGlmIHNlY2xlbiA+IDE6CiAgICAgICAgZm9yIGkgaW4geHJhbmdlKDEsIHNlY2xlbiArIDEpOgogICAgICAgICAgICBwcmludCAoIiUiICsgc3RyKHNlcDIgLSBpICsgMSkgKyAicyIpICUgKGludChzZWNvbmRbLWldKSAqIERlY2ltYWwoZmlyc3QpKQogICAgICAgIHByaW50ICItIiAqIHNlcDIKICAgIHByaW50IHBhdCAlIHJlcwoKZGVmIHByb2Nlc3MoKToKICAgIGdsb2JhbCBmaXJzdCwgc2Vjb25kLCBzdWIKICAgIHRlc3RzID0gaW5wdXQoKQogICAgd2hpbGUgdGVzdHM6CiAgICAgICAgdmFyID0gcmF3X2lucHV0KCkKICAgICAgICBmb3Igc3ViIGluIHZhcjoKICAgICAgICAgICAgaWYgbm90IHN1Yi5pc2RpZ2l0KCk6CiAgICAgICAgICAgICAgICBicmVhawogICAgICAgIChmaXJzdCwgc2Vjb25kKSA9IHZhci5zcGxpdChzdWIpCiAgICAgICAgaWYgc3ViIGluICIrLSI6CiAgICAgICAgICAgIGFkZCgpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgbXVsKCkKICAgICAgICBwcmludAogICAgICAgIHRlc3RzIC09IDEKCmRlZiBtYWluKCk6CiAgICBpbml0KCkKICAgIHByb2Nlc3MoKQoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIG1haW4oKQo=