function Main(input) {
    var len = input.length;
    // if (len === 1) {
    //     console.log(input);
    //     return;
    // }

    var ans = 0;

    for (var i = 0; i <= Math.pow(2, len - 1) - 1; i++) {
        var tmp = '0000000000' + i.toString(2);
        var binary = tmp.substring(tmp.length - len + 1, tmp.length);

        var prev = 0;
        var list = [];
        for (var j = 0; j < binary.length; j++) {
            if (binary.charAt(j) === '0') {
                continue;
            }
            list.push(Number(input.substring(prev, j + 1)));
            prev = j + 1
        }
        list.push(Number(input.substring(prev, binary.length + 1)));
        var plus = 0;
        list.forEach(e => plus += e);
        ans += plus;

    }
    console.log(ans)

}
//*この行以降は編集しないでください（標準入出力から一度に読み込み、Mainを呼び出します）
Main(require("fs").readFileSync("/dev/stdin", "utf8"));
// Main(require("fs").readFileSync("./input", "utf8"));