/* VNIMANIYE! Etot fail rashiryet prototipy. Zapreshaetsa ispolzovat sovmestno
s drugimi failami. */
process.stdin.resume();
process.stdin.setEncoding('utf8');
Array.prototype.$ = function (f) { return f(this) }
Array.prototype.sort1 = function (f) { this.sort(f); return this }
function etoKusochekBaytika(kus) { return kus.length !== 0 && kus.replace(/0|1/g, '').length == 0 }
function monetki (n, nominals) {
function monetki_recur(n, nominals) {
return nominals.map(function (nom) {
if (nom < n) {
return monetki(n - nom, nominals).map(function (tail) {
return [nom].concat(tail);
})
} else if (nom == n) {
return [[nom]]
} else {
return [];
}
}).reduce(function (r, a) { return r.concat(a) }, [])
}
function mprocess(monetki) {
var dict = {}, res = [], i
monetki.forEach(function (m) {
m.sort(function (x,y) { return y-x})
dict[m] = m
})
for(i in dict) {
res.push(dict[i])
}
res.sort(function (x,y) { return y.length - x.length})
return res
}
return mprocess(monetki_recur(n, nominals))
}
function sdelatBaytiki(kusochki) {
var baitiki = []
, kluchiki = function (slovar) {
var kl=[], i; for (i in slovar) { kl.push(i) }; return kl;
}
, stopochki = kusochki.reduce(function (stopki, kus) {
stopki[kus.length] = (stopki[kus.length] || []).concat([kus])
return stopki
}, {})
, ostalos = function (stopki) {
return kluchiki(stopki).reduce(function (x,y) { return x+stopki[y].length }, 0)
}
, try_match = function (stopki, schemka) {
var rollback = function (baitik) {
baitik.forEach(function (kus) {
stopki[kus.length].push(kus)
})
}
return schemka.reduce(function (baitik, ks) {
if (baitik === null)
return null
if (stopki[ks] && stopki[ks].length > 0) {
return [stopki[ks].pop()].concat(baitik)
} else {
rollback(baitik);
return null;
}
}, [])
}
, schemki = monetki(8, kluchiki(stopochki).map(Number))
, schemka = schemki.pop()
, baitik = null;
while (schemka && ostalos(stopochki) > 0) {
while(schemka && !(baitik = try_match(stopochki, schemka))) {
schemka = schemki.pop()
}
if (baitik !== null)
baitiki.push(baitik)
}
// PROVERKA
if (ostalos(stopochki) == 0) {
console.log('VSE HOROSHO')
} else {
console.log('VNIMANIYE, OSHIBKA')
console.log(stopochki)
console.log(monetki(8, kluchiki(stopochki).map(Number)))
}
return baitiki
}
function pechatatBaytik(bayt) { process.stdout.write(bayt.join(' + ') + '\n') }
function sobratBaytiki(zemlya) {
zemlya
.split(/\s+/)
.filter(etoKusochekBaytika)
.sort1(function (x, y) { return y.length - x.length })
.$(sdelatBaytiki)
.forEach(pechatatBaytik)
}
var buffer = ""
process.stdin.on('data', function (chunk) { return buffer+=chunk})
process.stdin.on('end', function () {
var i, buffer1=''
for (i =0; i < 10; i++) {
buffer1+=buffer
}
sobratBaytiki(buffer1)
})
LyogVk5JTUFOSVlFISBFdG90IGZhaWwgcmFzaGlyeWV0IHByb3RvdGlweS4gWmFwcmVzaGFldHNhIGlzcG9sem92YXQgc292bWVzdG5vIApzIGRydWdpbWkgZmFpbGFtaS4gKi8KCnByb2Nlc3Muc3RkaW4ucmVzdW1lKCk7CnByb2Nlc3Muc3RkaW4uc2V0RW5jb2RpbmcoJ3V0ZjgnKTsKCkFycmF5LnByb3RvdHlwZS4kID0gZnVuY3Rpb24gKGYpIHsgcmV0dXJuIGYodGhpcykgfQoKQXJyYXkucHJvdG90eXBlLnNvcnQxID0gZnVuY3Rpb24gKGYpIHsgdGhpcy5zb3J0KGYpOyByZXR1cm4gdGhpcyB9CgpmdW5jdGlvbiBldG9LdXNvY2hla0JheXRpa2Eoa3VzKSB7IHJldHVybiBrdXMubGVuZ3RoICE9PSAwICYmIGt1cy5yZXBsYWNlKC8wfDEvZywgJycpLmxlbmd0aCA9PSAwIH0KCgpmdW5jdGlvbiBtb25ldGtpIChuLCBub21pbmFscykgewoKICAgIGZ1bmN0aW9uIG1vbmV0a2lfcmVjdXIobiwgbm9taW5hbHMpIHsKICAgICAgICByZXR1cm4gbm9taW5hbHMubWFwKGZ1bmN0aW9uIChub20pIHsKICAgICAgICAgICAgaWYgKG5vbSA8IG4pIHsKICAgICAgICAgICAgICAgIHJldHVybiBtb25ldGtpKG4gLSBub20sIG5vbWluYWxzKS5tYXAoZnVuY3Rpb24gKHRhaWwpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gW25vbV0uY29uY2F0KHRhaWwpOwogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgfSBlbHNlIGlmIChub20gPT0gbikgewogICAgICAgICAgICAgICByZXR1cm4gW1tub21dXSAKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgcmV0dXJuIFtdOwogICAgICAgICAgICB9CiAgICAgICAgfSkucmVkdWNlKGZ1bmN0aW9uIChyLCBhKSB7IHJldHVybiByLmNvbmNhdChhKSB9LCBbXSkKICAgIH0KCiAgICBmdW5jdGlvbiBtcHJvY2Vzcyhtb25ldGtpKSB7CiAgICAgICAgdmFyIGRpY3QgPSB7fSwgcmVzID0gW10sIGkKICAgICAgICBtb25ldGtpLmZvckVhY2goZnVuY3Rpb24gKG0pIHsKICAgICAgICAgICAgbS5zb3J0KGZ1bmN0aW9uICh4LHkpIHsgcmV0dXJuIHkteH0pCiAgICAgICAgICAgIGRpY3RbbV0gPSBtCiAgICAgICAgfSkKICAgICAgICBmb3IoaSBpbiBkaWN0KSB7CiAgICAgICAgICAgIHJlcy5wdXNoKGRpY3RbaV0pCiAgICAgICAgfQogICAgICAgIHJlcy5zb3J0KGZ1bmN0aW9uICh4LHkpIHsgcmV0dXJuIHkubGVuZ3RoIC0geC5sZW5ndGh9KQogICAgICAgIHJldHVybiByZXMKICAgIH0KCiAgICByZXR1cm4gIG1wcm9jZXNzKG1vbmV0a2lfcmVjdXIobiwgbm9taW5hbHMpKQp9CgoKCmZ1bmN0aW9uIHNkZWxhdEJheXRpa2koa3Vzb2Noa2kpIHsKICAgIHZhciBiYWl0aWtpID0gW10KICAgICAgICAsIGtsdWNoaWtpICA9IGZ1bmN0aW9uIChzbG92YXIpIHsgCiAgICAgICAgICAgIHZhciBrbD1bXSwgaTsgZm9yIChpIGluIHNsb3ZhcikgeyBrbC5wdXNoKGkpIH07IHJldHVybiBrbDsgCiAgICAgICAgfQogICAgICAgICwgc3RvcG9jaGtpID0ga3Vzb2Noa2kucmVkdWNlKGZ1bmN0aW9uIChzdG9wa2ksIGt1cykgewogICAgICAgICAgICBzdG9wa2lba3VzLmxlbmd0aF0gPSAoc3RvcGtpW2t1cy5sZW5ndGhdIHx8IFtdKS5jb25jYXQoW2t1c10pCiAgICAgICAgICAgIHJldHVybiBzdG9wa2kgCiAgICAgICAgfSwge30pCiAgICAgICAgLCBvc3RhbG9zICAgICAgICAgPSBmdW5jdGlvbiAoc3RvcGtpKSB7IAogICAgICAgICAgICByZXR1cm4ga2x1Y2hpa2koc3RvcGtpKS5yZWR1Y2UoZnVuY3Rpb24gKHgseSkgeyByZXR1cm4geCtzdG9wa2lbeV0ubGVuZ3RoIH0sIDApIAogICAgICAgIH0KICAgICAgICAsIHRyeV9tYXRjaCAgICAgICA9IGZ1bmN0aW9uIChzdG9wa2ksIHNjaGVta2EpIHsKICAgICAgICAgICAgdmFyIHJvbGxiYWNrID0gZnVuY3Rpb24gKGJhaXRpaykgewogICAgICAgICAgICAgICAgYmFpdGlrLmZvckVhY2goZnVuY3Rpb24gKGt1cykgewogICAgICAgICAgICAgICAgICAgIHN0b3BraVtrdXMubGVuZ3RoXS5wdXNoKGt1cykKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHNjaGVta2EucmVkdWNlKGZ1bmN0aW9uIChiYWl0aWssIGtzKSB7CiAgICAgICAgICAgICAgICBpZiAoYmFpdGlrID09PSBudWxsKQogICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsCiAgICAgICAgICAgICAgICBpZiAoc3RvcGtpW2tzXSAmJiBzdG9wa2lba3NdLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gW3N0b3BraVtrc10ucG9wKCldLmNvbmNhdChiYWl0aWspCiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIHJvbGxiYWNrKGJhaXRpayk7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sIFtdKQogICAgICAgICAgICAKICAgICAgICB9CiAgICAgICAgLCBzY2hlbWtpID0gbW9uZXRraSg4LCBrbHVjaGlraShzdG9wb2Noa2kpLm1hcChOdW1iZXIpKQogICAgICAgICwgc2NoZW1rYSA9IHNjaGVta2kucG9wKCkKICAgICAgICAsIGJhaXRpayA9IG51bGw7CgogICAgd2hpbGUgKHNjaGVta2EgJiYgb3N0YWxvcyhzdG9wb2Noa2kpID4gMCkgewogICAgICAgIHdoaWxlKHNjaGVta2EgJiYgIShiYWl0aWsgPSB0cnlfbWF0Y2goc3RvcG9jaGtpLCBzY2hlbWthKSkpIHsKICAgICAgICAgICAgc2NoZW1rYSA9IHNjaGVta2kucG9wKCkKICAgICAgICB9IAogICAgICAgIGlmIChiYWl0aWsgIT09IG51bGwpCiAgICAgICAgICAgIGJhaXRpa2kucHVzaChiYWl0aWspICAgIAogICAgfQoKICAgIC8vIFBST1ZFUktBCiAgICBpZiAob3N0YWxvcyhzdG9wb2Noa2kpID09IDApIHsKICAgICAgICBjb25zb2xlLmxvZygnVlNFIEhPUk9TSE8nKSAgICAKICAgIH0gZWxzZSB7CiAgICAgICAgY29uc29sZS5sb2coJ1ZOSU1BTklZRSwgT1NISUJLQScpCiAgICAgICAgY29uc29sZS5sb2coc3RvcG9jaGtpKQogICAgICAgIGNvbnNvbGUubG9nKG1vbmV0a2koOCwga2x1Y2hpa2koc3RvcG9jaGtpKS5tYXAoTnVtYmVyKSkpCiAgICB9CiAgICAKICAgIHJldHVybiBiYWl0aWtpCn0KCmZ1bmN0aW9uIHBlY2hhdGF0QmF5dGlrKGJheXQpIHsgcHJvY2Vzcy5zdGRvdXQud3JpdGUoYmF5dC5qb2luKCcgKyAnKSArICdcbicpIH0KCmZ1bmN0aW9uIHNvYnJhdEJheXRpa2koemVtbHlhKSB7CiAgICB6ZW1seWEKICAgICAgICAuc3BsaXQoL1xzKy8pCiAgICAgICAgLmZpbHRlcihldG9LdXNvY2hla0JheXRpa2EpCiAgICAgICAgLnNvcnQxKGZ1bmN0aW9uICh4LCB5KSB7IHJldHVybiB5Lmxlbmd0aCAtIHgubGVuZ3RoIH0pCiAgICAgICAgLiQoc2RlbGF0QmF5dGlraSkKICAgICAgICAuZm9yRWFjaChwZWNoYXRhdEJheXRpaykKfQoKdmFyIGJ1ZmZlciA9ICIiCnByb2Nlc3Muc3RkaW4ub24oJ2RhdGEnLCBmdW5jdGlvbiAoY2h1bmspIHsgcmV0dXJuIGJ1ZmZlcis9Y2h1bmt9KQpwcm9jZXNzLnN0ZGluLm9uKCdlbmQnLCBmdW5jdGlvbiAoKSB7IAogICAgdmFyIGksIGJ1ZmZlcjE9JycKICAgIGZvciAoaSA9MDsgaSA8IDEwOyBpKyspIHsKICAgICAgIGJ1ZmZlcjErPWJ1ZmZlcgogICAgfQogICAgc29icmF0QmF5dGlraShidWZmZXIxKSAKfSkK
VNIMANIYE, OSHIBKA
{ '7':
[ '0110111',
'0110111',
'0110111',
'0110111',
'0110111',
'0110111',
'0110111',
'0110111',
'0110111',
'0110111',
'0110110' ],
'8': [],
'9': [ '011100001' ],
'16':
[ '0110110011100001',
'0110110011100001',
'0110110011100001',
'0110110011100001',
'0110110011100001',
'0110110011100001',
'0110110011100001',
'0110110011100001',
'0110110011100001' ] }
[ [ 8 ] ]
01100101
01101110
01100101
01101110
01100101
01101110
01100101
01101110
01100101
01101110
01100101
01101110
01100101
01101110
01100101
01101110
01100101
01101110
01100101
01101110