s = b'{Wp48S^xk9=GL@E0stWa761SMbT8$j;3PE%TwMSdX4qpOhynqO;0KzSm2c^Yy_BZRt!Pn%ZY(2jZEa@_)MJynfv4nyob|K4uqNDEIE_hvNteajmFDrYxB3L%JOyYUZneun6HU+v(YXW={|fuuDx&1fW@d!S&0VE{v8-3)RVHfxiE<^dHie3i(|G|BoRc$^O|7@U-7jU;Ec~MF`C>RTaix)@{&L1xd=XjtYW4oDmYLv?(FrNd~`&yT4f#?csRBKAFHL0FmaP&-(yl&Un5j@ac6t&{Mzv*mwWG0iL0SMm%}O_gQSri3I26(}5L-^}GmA#IP`R1mcgJjs%?q1^zym@05z1BGjF=Dz7xhrBFrgKSn;#XUg9RiUrkmx`>^Fv{HOx;a!9Ne^r?eN-$BK~M^D^~UY37X{!2>FNUtOD0xqNGZ)LsT<2~W0%}FfAhRMK>E#8hWQ(6TO~{wtl39?+on5f7>V|bJ0gAn&*43yQ#UF8rRX)k3Cu#~;;dQgLDn@U;WXh#+?q;e8~g%bsE!n^{_2;21jJc#PU(imqybD4%an+FjQZ-7*1c0HHa2q4AMp{oA4;7$xUhP)=QrbHxRWL$tGff3^4;@}e@-0OLG0t)UJYt6xP1la3>#883dqUb50!WC30*sOHaL~A?Rgg~i&!uVcQ@FEmSfy=K3xNQ6~6bjLkd-bw>^2))#Wv(WlDcuSi07muW{Dg$j;=dpSa-TPcw2t_oLP1z|$(G(?EZQ`|Nk+=U2(q-j`MsEJm)J*a03XVDkb2eGcYs?u%gQ&@Q5aG&iH$sgOwr=6N)j%u>{93dRn-Vgb0Dxrsfn-{DbEmS)*{-~aCpu=I7?xAll`BU9>l^y;&nd|IsrP}V6|3MlQW{}Q5;@npNgU6FV%0jUR$C(M|~|jqg(efDt!?l`jn2rm|boL`C=z4g5jgQ`(Kmc#f4DoJEP$AYL{9G(Th>l@-xj4V;sL^x*aI_+8E+TD9pa2JZkvfN?Ciz;G!y_0s`m;6Up1XaXKrz5Du01$(kI2$tK!lj{hz_4kmL(7#jYvYy#xfCM=vZytA1Q$P*~o!8dVxMocY9DOZO=ktjSGCAN9c}fa5c#kn!Cj&6Y;-9uH%~}KCM@!b^VfxzRD5}4hEV7gg7xv%VTzO8zSKJV8PP3t5UnH)vOdO-rZSZGE&Jz>l27$e)ch&7`@4`D-+DT#vqR13@4tdNj)VNEkXdm!riYc`~JK;ur8SNA?Aw3zUZi6QTS*!Re?ERjg}`l*^4dz}?HAlzvo~(83I!d3*?g&fXar3f8TJ_)5mKTO!hD7!~ len(n): v = 0 for i in range(2, 15): for _ in range(f[i]): v = 10 * v + vals[i] for _ in range(f[0] + f[1]): v *= 10 f[0] = f[1] = 0 ans = min(ans, v) else: digits = [] ok = True for i in range(len(n)): for p in val2id[n[i]]: if f[p]: f[p] -= 1 digits.append(vals[p]) break else: for p in range(val2id[n[i]][0], 15): if f[p]: f[p] -= 1 digits.append(vals[p]) for p in range(15): for _ in range(f[p]): digits.append(vals[p]) break else: for p in range(15)[::-1]: for _ in range(f[p]): digits.append(vals[p]) for j in range(len(digits) - 1)[::-1]: if digits[j] < digits[j+1]: k = len(digits) - 1 while digits[k] <= digits[j]: k -= 1 digits[j], digits[k] = digits[k], digits[j] j += 1 k = len(digits) - 1 while j < k: digits[j], digits[k] = digits[k], digits[j] j += 1 k -= 1 break else: ok = False break if ok: v = 0 for x in digits: v = 10 * v + x ans = min(ans, v) print(ans)