#abc301d. [abc301_d]Bitmask

[abc301_d]Bitmask

問題文

0, 1, ? からなる文字列 SS および整数 NN が与えられます。 SS に含まれる ? をそれぞれ 0 または 1 に置き換えて 22 進整数とみなしたときに得られる値の集合を TT とします。 たとえば、S=S= ?0? のとき、 $T=\\lbrace 000_{(2)},001_{(2)},100_{(2)},101_{(2)}\\rbrace=\\lbrace 0,1,4,5\\rbrace$ です。

TT に含まれる NN 以下の値のうち最大のものを (1010 進整数として) 出力してください。 NN 以下の値が TT に含まれない場合は、代わりに -1 を出力してください。

制約

  • SS0, 1, ? からなる文字列
  • SS の長さは 11 以上 6060 以下
  • 1leqNleq10181\\leq N \\leq 10^{18}
  • NN は整数

入力

入力は以下の形式で標準入力から与えられる。

SS NN

出力

答えを出力せよ。


入力例 1

?0?
2

出力例 1

1

問題文中で例示したとおり、T=lbrace0,1,4,5rbraceT=\\lbrace 0,1,4,5\\rbrace です。 TT に含まれる NN 以下の値は 0011 なので、そのうちの最大である 11 を出力します。


入力例 2

101
4

出力例 2

-1

T=lbrace5rbraceT=\\lbrace 5\\rbrace であるため、NN 以下の値は TT に含まれません。


入力例 3

?0?
1000000000000000000

出力例 3

5