while 1: a=raw_input().split();r=range(len(a));m=[[(i+1)**p for p in r]+[int(a[i])]for i in r] for j in r:s=m[j];m=[map(lambda a,b:a-b*(i[j]-(i==s))/s[j],i,s)for i in m] while~j: c=m[j][-1] if c:print('%+d'%c)[s>c>0:c*c+(j<1)]+('x^%d'%j)[:j*j],;s=0 j-=1 print