#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;
}