#!/usr/bin/env python
# -*- coding: utf-8 -*-
def divi(x):
return x / 100
def remai(x):
return x % 100
def truncm(x):
a0, a1 = divi(x), remai(x)
result = list()
result.append(a1)
while a1 != 0:
a0, a1 = divi(a0), remai(a0)
result.append(a1)
return result
def ab_terms_mod(a, b):
la = len(a)
maxm = la
lb = len(b)
if lb > maxm:
maxm = lb
term = []
i = -1
n = -1
while (n != 0):
n = 0
i = i + 1
for c, j in enumerate(range(i, -1, -1)):
try:
ac = a[c]
except Exception as e:
ac = 0
try:
bj = b[j]
except Exception as e:
bj = 0
n = n + ac*bj
term.append(n)
return term
def main():
T = int(input())
bspace = " "
U = []
for _ in range(T):
lists = raw_input().split()
op = lists[0]
list1 = map(int,lists[1:])
a = list1[0]
b = list1[1]
if op == '<':
if a < b:
U.append(1)
elif a == b:
U.append(0)
elif a > b:
U.append(-1)
elif op == '+':
U.append(a + b)
elif op == '-':
if a < b:
U.append(0)
else:
U.append(a - b)
elif op == '*':
U.append(a * b)
elif op == '/':
if b == 0:
U.append([0, 0])
else:
U.append([a/b, a%b])
elif op == '#':
m = list1[2]
r_a = truncm(a)
r_b = truncm(b)
tt = ab_terms_mod(r_a, r_b)
le = len(tt)
t = 0
for c,i in enumerate(range(m, le)):
t = t + (tt[i]* 100**c)
U.append(t)
for n in U:
if isinstance(n, list):
print '{0}{1}{2}'.format(n[0],bspace,n[1])
else:
print '{0}'.format(n)
return
if __name__ == '__main__':
main()
IyEvdXNyL2Jpbi9lbnYgcHl0aG9uCiMgLSotIGNvZGluZzogdXRmLTggLSotCgpkZWYgZGl2aSh4KToKICAgIHJldHVybiB4IC8gMTAwCgpkZWYgcmVtYWkoeCk6CiAgICByZXR1cm4geCAlIDEwMAoKZGVmIHRydW5jbSh4KToKICAgIGEwLCBhMSA9ICBkaXZpKHgpLCByZW1haSh4KQogICAgcmVzdWx0ID0gbGlzdCgpCiAgICByZXN1bHQuYXBwZW5kKGExKQogICAgd2hpbGUgYTEgIT0gMDoKICAgICAgICBhMCwgYTEgPSAgZGl2aShhMCksIHJlbWFpKGEwKSAgICAgCiAgICAgICAgcmVzdWx0LmFwcGVuZChhMSkKICAgIHJldHVybiByZXN1bHQKCmRlZiBhYl90ZXJtc19tb2QoYSwgYik6CiAgICBsYSA9IGxlbihhKQogICAgbWF4bSA9IGxhCiAgICBsYiA9IGxlbihiKQogICAgaWYgbGIgPiBtYXhtOgogICAgICAgIG1heG0gPSBsYgogICAgdGVybSA9IFtdCiAgICBpID0gLTEKICAgIG4gPSAtMQogICAgd2hpbGUgKG4gIT0gMCk6CiAgICAgICAgbiA9IDAKICAgICAgICBpID0gaSArIDEgIAogICAgICAgIGZvciBjLCBqIGluIGVudW1lcmF0ZShyYW5nZShpLCAtMSwgLTEpKToKICAgICAgICAgICAgdHJ5OiAgCiAgICAgICAgICAgICAgICBhYyA9IGFbY10KICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgICAgICAgICAgYWMgPSAwCiAgICAgICAgICAgIHRyeTogIAogICAgICAgICAgICAgICAgYmogPSBiW2pdCiAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICAgICAgICAgIGJqID0gMAogICAgICAgICAgICBuID0gbiArIGFjKmJqCiAgICAgICAgdGVybS5hcHBlbmQobikKICAgIHJldHVybiB0ZXJtCgpkZWYgbWFpbigpOgogICAgVCA9IGludChpbnB1dCgpKQogICAgYnNwYWNlID0gIiAiIAogICAgVSA9IFtdCiAgICBmb3IgXyBpbiByYW5nZShUKToKICAgICAgICBsaXN0cyA9IHJhd19pbnB1dCgpLnNwbGl0KCkKICAgICAgICBvcCA9IGxpc3RzWzBdCiAgICAgICAgbGlzdDEgPSBtYXAoaW50LGxpc3RzWzE6XSkKICAgICAgICBhID0gbGlzdDFbMF0KICAgICAgICBiID0gbGlzdDFbMV0KICAgICAgICBpZiBvcCA9PSAnPCc6CiAgICAgICAgICAgIGlmIGEgPCBiOgogICAgICAgICAgICAgICAgVS5hcHBlbmQoMSkKICAgICAgICAgICAgZWxpZiBhID09IGI6CiAgICAgICAgICAgICAgICBVLmFwcGVuZCgwKQogICAgICAgICAgICBlbGlmIGEgPiBiOgogICAgICAgICAgICAgICAgVS5hcHBlbmQoLTEpCiAgICAgICAgZWxpZiBvcCA9PSAnKyc6CiAgICAgICAgICAgIFUuYXBwZW5kKGEgKyBiKQogICAgICAgIGVsaWYgb3AgPT0gJy0nOgogICAgICAgICAgICBpZiBhIDwgYjoKICAgICAgICAgICAgICAgIFUuYXBwZW5kKDApCiAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICBVLmFwcGVuZChhIC0gYikKICAgICAgICBlbGlmIG9wID09ICcqJzoKICAgICAgICAgICAgVS5hcHBlbmQoYSAqIGIpCiAgICAgICAgZWxpZiBvcCA9PSAnLyc6CiAgICAgICAgICAgIGlmIGIgPT0gMDoKICAgICAgICAgICAgICAgIFUuYXBwZW5kKFswLCAwXSkKICAgICAgICAgICAgZWxzZTogICAgICAKICAgICAgICAgICAgICAgIFUuYXBwZW5kKFthL2IsIGElYl0pCiAgICAgICAgZWxpZiBvcCA9PSAnIyc6CiAgICAgICAgICAgIG0gPSBsaXN0MVsyXQogICAgICAgICAgICByX2EgPSB0cnVuY20oYSkKICAgICAgICAgICAgcl9iID0gdHJ1bmNtKGIpCiAgICAgICAgICAgIHR0ID0gYWJfdGVybXNfbW9kKHJfYSwgcl9iKQogICAgICAgICAgICBsZSA9IGxlbih0dCkKICAgICAgICAgICAgdCA9IDAKICAgICAgICAgICAgZm9yIGMsaSBpbiBlbnVtZXJhdGUocmFuZ2UobSwgbGUpKToKICAgICAgICAgICAgICAgIHQgPSB0ICsgKHR0W2ldKiAxMDAqKmMpCiAgICAgICAgICAgIFUuYXBwZW5kKHQpCgogICAgZm9yIG4gaW4gVToKICAgICAgICBpZiBpc2luc3RhbmNlKG4sIGxpc3QpOgogICAgICAgICAgICBwcmludCAnezB9ezF9ezJ9Jy5mb3JtYXQoblswXSxic3BhY2UsblsxXSkKICAgICAgICBlbHNlOgogICAgICAgICAgICBwcmludCAnezB9Jy5mb3JtYXQobikKCiAgICByZXR1cm4KCmlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CiAgICBtYWluKCk=
MTUKJmx0OyAxMDAwIDE5OTkKJmx0OyA5ODk4IDk4OTgKJmx0OyAxMjM0IDEyMwombHQ7IDAgMAorIDE3OTE1OTM0MzY5ODQ3NjY1NTk2NDI2MjY2MDkzMzMyNDUwNTE4NzEgMzA3NjM0NzUxMzM4NTQyNDc3MDM0Njc3NzExNTE3MTc1Ci0gMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCAxCi0gOTg1MTQ1NDMxODYxNTY0NTc0MzcyNDU0NDQ0MDQ2ODAyOTg2MiA0MDE1MzU2NjQ0Mjk1NDg5NjUyNjEwMzg3MjQyMTU5MTE1NgoqIDMzMzMzMzMzMyAwCiogMSAzMzMzMzMzMzM1NTU1CiogOTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OSA5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTkKLyAxIDk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OQovIDk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OSAyCi8gODYxNTY0NTc0MzcyNDU0NDQ0MDQ2ODAyOTg2MjMwNzYzNDc1MTMzODU0MjQ3NzAzIDY0NDI5NTQ4OTY1MjYxMDM4NzI0MjE1OTExNTYKIyAxMDEwIDIwMjAgMQojIDYxOTY2NTQ1ODM3MjY1MjkxMTY4ODk5OTYwOCA1NjQyNjcyMTg3MTIyOTEwNjI5MjEyMjI3Mjc3IDY=
15
< 1000 1999
< 9898 9898
< 1234 123
< 0 0
+ 1791593436984766559642626609333245051871 307634751338542477034677711517175
- 1000000000000000000000000000000000000000000000 1
- 9851454318615645743724544440468029862 40153566442954896526103872421591156
* 333333333 0
* 1 3333333335555
* 9999999999999999999999999999999999999999 999999999999999999999999999999999999999
/ 1 999999999999999999999999999999999999999999999
/ 999999999999999999999999999999999999999999999 2
/ 861564574372454444046802986230763475133854247703 6442954896526103872421591156
# 1010 2020 1
# 619665458372652911688999608 5642672187122910629212227277 6