var
i,j,k,l,m,n:longint;
a:array[0..100]of longint;
begin
readln(n);
for i:=n downto 0 do read(a[i]);
if n=1 then
begin
write(a[1],'x');
if a[0]=0 then exit;
if a[0]>0 then write('+',a[0])else write(a[0]);
exit;
end;
if n=0 then begin write(a[0]);exit;end;
if a[n]=1 then write('x^',n)
else
if a[n]=-1 then write('-x^',n)
else if a[n]<>0 then write(a[n],'x^',n);
for i:=n-1 downto 2 do
begin
if a[i]=0 then continue;
if a[i]=1 then write('+x^',i)
else
if a[i]=-1 then write('-x^',i)
else
if a[i]>0 then write('+',a[i],'x^',i)
else write(a[i],'x^',i);
end;
if a[1]=1 then write('+x')
else
if a[1]=-1 then write('-x')
else
if a[1]>0 then write('+',a[1],'x')
else
if a[1]<>0 then write(a[1],'x');
if a[0]>0 then write('+',a[0])
else if a[0]<0 then write(a[0]);
end.
/**************************************************************
Problem: 2284
User: admin
Language: Pascal
Result: Wrong Answer
****************************************************************/