Pentru scrierea mesajelor soldaţii dintr-o unitate militară folosesc 9 litere mici: a, e, i, o, u, m, n, r, s şi caracterul spaţiu. Aceste litere sunt codificate cu ajutorul cifrelor 1, 2, …, 9 (în ordinea de mai sus), iar pentru caracterul spaţiu se foloseşte cifra 0. Astfel codificarea textului ana are mere se poate realiza prin numărul natural 171018206282.
Pentru a mări gradul de securitate a mesajelor transmise soldaţii relizează o supracodificare, înlocuind fiecare cifră k folosită la codicare cu puterea 2k. Astfel textul anterior se supracodifică astfel: 2128212256416442564.
Cerința
Să se scrie un program care pentru o supracodificare dată, determină textul iniţial. Dacă există mai multe astfel de texte se vor determina toate.
Date de intrare
Fişierul de intrare codif.in conţine pe prima linie, n numărul de cifre folosite la textul supracodificat, iar pe a doua linie conţine supracodificarea.
Date de ieșire
Fișierul de ieșire codif.out va conține pe prima linie numărul m de texte ce corespund supracodificării date, iar pe următoarele m linii, textele, fiecare dintre acestea pe câte o linie, în ordine lungo-lexicografică.
Restricții și precizări
0< n < 83- Pentru două texte
u=u1u2...uaşiv=v1v2...vb, avem căueste înaintea luivîn ordine lungo-lexicografică, dacăa<bsau dacăa=bşi există un indice1≤i≤acu proprietatea cău1=v1, … ,ui-1=vi-1,ui=vi. Ordinea caracterelor este cea dată de codurile ASCII. De exemplu, în ordine lungo-lexicografică, textulaersseste înaintea textuluiaeumr, şi după textulsun. - Fiecare linie din fişierul de ieşire va avea sfârşit de linie.
- Pentru toate testele numărul de texte care corespunde aceleiaşi supracodificări este mai mic sau egal cu
70.
Exemplu:
codif.in
19 2128212256416442564
codif.out
4 ana are mere ana areoeere a aia are mere a aia areoeere