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
****************************************************************/