const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
void (async function () {
// Write your code here
let n = await readline();
function genStr(num, n) {
let str = ""
if (num === 0) {
return "";
} else if (Math.abs(num) === 1) {
str += `${num > 0 ? "+" : "-"}${n===0?Math.abs(num):""}`;
} else {
str += `${num > 0 ? "+" : ""}${num}`;
}
if(n === 0){
str += ""
}else if(n === 1){
str += "x"
}else{
str += `x^${n}`
}
return str
}
while ((line = await readline())) {
const arr = line.split(" ").map((value) => +value);
let i = 0;
let str = "";
do {
str += genStr(arr[i], n);
i++;
} while (n--);
if(str[0] === '+') str = str.substring(1)
console.log(str);
}
})();