この問題はスペシャルジャッジです。
正解となる出力が複数存在する場合、どれを出力してもかまいません。

問題文

0,1からなる長さNNの文字列SSが与えられます。
あなたはこの文字列に2N12^N-1回、以下の操作を行います。

  • 1iN1 \leq i \leq Nを満たすiiを選ぶ。
    SSii文字目が0なら1に、1なら0に置き換える。

xx回目の操作結果をAxA_xとします。
長さ2N2^Nの操作列A=(A0,A1,・・・,A2N1)A = (A_0, A_1, ・・・ , A_{2^N-1})であって、すべての要素が相異なるものをひとつ構築してください。
より厳密には、以下の条件をすべて満たす長さ2N2^Nの操作列AAをひとつ構築してください。

  • AAのすべての要素は、0,1からなる長さNNの文字列
  • AAのすべての要素は相異なる
  • A0=SA_0 = S
  • AxA_xAx+1A_{x+1}ハミング距離はちょうど11 (0x2N2)(0 \leq x \leq 2^N-2)

なお、本問の制約下で、条件を満たす操作列AA11通り以上存在することが証明できます。

制約

  • 2N102 \leq N \leq 10
  • NNは整数
  • SS0,1からなる長さNNの文字列

入力

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

N
S

出力

2N2^N行出力せよ。
xx行目には、条件を満たす操作列AAx1x-1回目の操作結果Ax1A_{x-1}を出力せよ。
11行目にA0=SA_0 = Sを出力する必要がある点に注意せよ。
条件を満たす操作列AAが複数存在する場合、どれを出力してもかまわない。

入力例

入力例1
2
01
出力例1
01
00
10
11

はじめ、文字列SS01です。
以下のように2212^2-1回の操作を行います。

  • 11回目の操作でi=2i=2を選び、SS22文字目を1から0に置き換えます。SS00になります。
  • 22回目の操作でi=1i=1を選び、SS11文字目を0から1に置き換えます。SS10になります。
  • 33回目の操作でi=2i=2を選び、SS22文字目を0から1に置き換えます。SS11になります。

この操作列A=(A = (01, 00, 10, 11))はすべての要素が相異なるため、条件を満たします。
なお条件を満たす操作列であれば、どれを出力しても正答とみなします。
たとえば、A=(A = (01, 11, 10, 00))も条件をすべて満たす操作列のひとつです。

入力例2
3
101
出力例2
101
001
011
010
000
100
110
111

Submit


Go (1.21)