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);
    }
})();