#!/usr/bin/python
import sys, re
def solve(m):
rowswitch = lambda m, i, j: \
m[:i] + [m[j]] + m[i+1:j] + [m[i]] + m[j+1:] if i < j else \
m[:j] + [m[i]] + m[j+1:i] + [m[j]] + m[i+1:] if i > j else m
rowmultiply = lambda m, r, i: \
m[:r] + [map(lambda n: n*i, m[r])] + m[r+1:]
rowadd = lambda m, r1, r2, i: \
m[:r2] + [map(sum, zip(map(lambda n: n*i, m[r1]), m[r2]))] + m[r2+1:]
for i in xrange(len(m)):
k = i
try:
while m[k][i] == 0: k += 1
except:
raise "Insoluble"
m = rowswitch(m, i, k)
m = rowmultiply(m, i, 1 / m[i][i])
for j in xrange(len(m)):
if j != i and m[j][i] != 0:
m = rowadd(m, i, j, -m[j][i])
return m
xs, ys = [], []
regex = re.compile(r"^\s*(\d+(?:\.\d+)?)\s+(\d+(?:\.\d+)?)\s*$")
for line in sys.stdin.readlines():
m = regex.match(line)
if m is None:
sys.stderr.write("Invalid input: %s\n" % line)
xs.append(float(m.group(1)))
ys.append(float(m.group(2)))
print "plot", " + ".join(filter(None, map(lambda (a, b): "%f * x**%d" % (b, a) if b != 0 else None, enumerate(zip(*solve(map(lambda (x, y): map(lambda (a, b): b**a, enumerate([x]*len(xs))) + [y], zip(xs, ys))))[-1]))))