#include<iostream>
using namespace std;
 int a[110];
int main(){
    int n;
    cin >> n;
    for(int i = 1;i <= n + 1;i ++ ){
        cin >> a[i];
    }
    //处理第一位
    if(n!=1){
        if(a[1]==1)
            cout <<"x^"<<n;
        else if(a[1]==-1)
            cout <<"-x^"<<n;
        else if(a[1] > 0 )
            cout <<a[1]<<"x^"<<n;
        else if(a[1] < 0 )
            cout <<a[1]<<"x^"<<n;
      }
      else {
         if(a[1]==1)
             cout <<"x";
         else if(a[1]==-1)
             cout <<"-x";
         else if(a[1] > 0 )
             cout <<a[1]<<"x";
         else if(a[1] < 0 )
             cout <<a[1]<<"x"; 
     } 
    //处理中间位
    for(int i = 2;i <= n-1 ;i ++ ){
        if (a[i] != 0){
            if(a[i]==1)
            cout <<"+x^"<<n-i+1;
            else if(a[i]==-1)
            cout <<"-x^"<<n-i+1;
             else{
                 if(a[i]>0)
            cout <<"+"<<a[i]<<"x^"<<n-i+1;
                 else
            cout <<a[i]<<"x^"<<n-i+1;          
             }
        }
    }
    //处理倒数第二位
   if (a[n] != 0) {
            if(a[n]==1)
            cout <<"+x";
            else if(a[n]==-1)
            cout <<"-x";
             else{
                 if(a[n]>0)
            cout <<"+"<<a[n]<<"x";
                 else
            cout <<a[n]<<"x";          
             }
        }
    //处理倒数第一位
    if (a[n+1]!=0) {
        if (a[n+1]>0) {
            cout <<"+"<< a[n+1];
        }
        else {
            cout << a[n+1];
        }
    }
    return 0;
}