#include <iostream>
#include <vector>
using namespace std;

int main() {
    int n;
    cin >> n;
    vector<int> coeff(n +
                      1); // 存n次项到0次项的系数(coeff[0]是n次项,coeff[n]是0次项)
    for (int i = 0; i <= n; i++) {
        cin >> coeff[i];
    }

    // 1. 处理最高次项(第一个项,控制开头的负号)
    int c = coeff[0];
    int t = n;
    if (c < 0) {
        cout << "-"; // 开头的负号:系数为负,先输出-
        c = -c;      // 取绝对值,后续按正数处理
    }
    // 处理最高次项的系数
    if (c != 1 ||
            t == 0) { // 系数不是1,或次数是0(常数项),才输出系数
        cout << c;
    }
    // 处理最高次项的次数
    if (t > 1) {
        cout << "x^" << t;
    } else if (t == 1) {
        cout << "x";
    }
    // 注意:t=0是常数项,这里次数不输出


    // 2. 处理剩下的项(从n-1次到0次)
    for (int i = 1; i <= n; i++) {
        c = coeff[i];
        t = n - i; // 当前项的次数
        if (c == 0) {
            continue; // 系数为0,跳过这个项
        }

        // 处理符号:非第一项,正系数输出+,负系数输出-
        if (c > 0) {
            cout << "+";
        } else {
            cout << "-";
            c = -c;
        }

        // 处理系数
        if (c != 1 || t == 0) {
            cout << c;
        }

        // 处理次数
        if (t > 1) {
            cout << "x^" << t;
        } else if (t == 1) {
            cout << "x";
        }
        // t=0是常数项,次数不输出
    }

    cout << endl;
    return 0;
}