- #! /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=