#include <iostream>
using namespace std;
#include<vector>
int main() {
    int n;
    cin >> n; //5
    vector<string>v;
    string Fx;
    for (int i = 0; i < n + 1; i++) { //存储系数
        string a;
        cin >> a;
        v.push_back(a);
    }
    for (int i = 0; i < n; i++) { 
        if (v[i] == "0") {  //系数为零跳过
            continue;
        }
        if (v[i] != "0") {    
            if (stoi(v[i]) > 0) {    //系数大于0
                if (stoi(v[i]) == 1) {//系数为1的特殊情况
                    string x;
                    if(n-i==1){//次数为1的特殊情况
                         x = "+x";
                    }
                    else{
                        x = "+x^" + to_string(n - i);
                        }
                    Fx += x;
                } 
                else {
                    string x;
                    if(n-i==1){
                      x = "+" + v[i] + "x";
                    }
                    else{
                      x = "+" + v[i] + "x^" + to_string(n - i);
                      }
                    Fx += x;
                }
            }
            if (stoi(v[i]) < 0) { 
                if (stoi(v[i]) == -1) {
                    string x; 
                    if(n-i==1){
                     x = "-x" ;
                    }
                    else{
                    x = "-x^" + to_string(n - i);
                    }
                    Fx += x;
                }
                 else {
                    string x;
                    if(n-i==1){
                         x = v[i] + "x";
                    }
                    else{
                    x = v[i] + "x^" + to_string(n - i);
                    }
                    Fx += x;
                }
            }

        }
    }
    if (stoi(v[n]) > 0) { //最后0次方的常数单独讨论
        Fx += "+" + v[n];  
    }    
    if (stoi(v[n]) < 0) {
        Fx += v[n];
    }
    if (Fx[0] == '+') {//删掉开头的多余+
        Fx.erase(Fx.begin());
        cout << Fx;
    } else {
        cout << Fx;
    }

}
// 64 位输出请用 printf("%lld")