#joi2018hoe. [joi2018ho_e]毒蛇の脱走 (Snake Escaping)

[joi2018ho_e]毒蛇の脱走 (Snake Escaping)

JOI 研究所の毒蛇

JOI研究所では2L2^L匹の毒蛇を飼育しており、それぞれ0,1,,2L10, 1, \ldots, 2^L - 1の番号が付けられています。すべての毒蛇は頭から順にLL個の部分に分かれており、それぞれの部分は青または赤です。毒蛇iiに対して、iiを2進表記してi=k=1Lck2Lki=\sum_{k = 1}^{L} c_k 2^{L - k} (0ck10 \leqq c_k \leqq 1)とした場合、

  • ck=0c_k = 0であれば、毒蛇iiの頭から数えてkk番目の部分は青であり、
  • ck=1c_k = 1であれば、毒蛇iiの頭から数えてkk番目の部分は赤である。

各毒蛇には毒性と呼ばれる00以上99以下の整数値が定まっています。長さ2L2^Lの文字列SSが与えられ、そのii文字目(1i2L1 \leqq i \leqq 2^L)は毒蛇i1i - 1の毒性を表します。

毒蛇たちは非常に素早いため、JOI研究所からは毒蛇たちが脱走することがよくあります。JOI研究所には脱走した毒蛇を目撃した周辺住民から苦情が寄せられます。

あなたにはQQ日間の苦情の情報が与えられます。dd日目(1dQ1 \leqq d \leqq Q)に寄せられた苦情は01?からなる長さLLの文字列TdT_dとして表され、以下のように解釈できます。

  • TdT_djj文字目(1jL1 \leqq j \leqq L)が0の場合は、dd日目に脱走したすべての毒蛇の頭から数えてjj番目の部分が青であることを表します。
  • TdT_djj文字目(1jL1 \leqq j \leqq L)が1の場合は、dd日目に脱走したすべての毒蛇の頭から数えてjj番目の部分が赤であることを表します。
  • TdT_djj文字目(1jL1 \leqq j \leqq L)が?の場合は、dd日目に脱走した毒蛇の頭から数えてjj番目の部分については、周辺住民からは情報が与えられなかったことを表します。

苦情はすべて正確な情報です。脱走した毒蛇はJOI研究所の職員によってその日のうちに捕獲されますが、捕獲された毒蛇が翌日以降に再び脱走する可能性もあります。

JOI研究所の理事長であるKは、毒蛇の脱走によるリスクを評価するために、脱走した可能性のある毒蛇の毒性の合計を知りたいと考えています。あなたの仕事は、QQ日間の苦情の情報から、それぞれの日ごとに、その日に脱走した可能性のある毒蛇の毒性の合計を求めるプログラムを作成することです。

課題

毒蛇の毒性を表す文字列SSと、QQ日間の苦情の情報が与えられるので、それぞれの日ごとに、その日に脱走した可能性のある毒蛇の毒性の合計を求めるプログラムを作成してください。

メモリ制限に注意してください。


入力

標準入力から以下の入力を読み込んでください。

  • 11 行目には、整数 L,QL, Q が空白を区切りとして書かれています。これらは順に、毒蛇の部分の個数と、苦情の寄せられる日数を表します。
  • 22 行目には、長さ 2L2^L の文字列 SS が書かれています。この文字列は毒蛇の毒性を表します。
  • 続く QQ 行のうちの dd 行目 (1dQ1 \leqq d \leqq Q) には、長さ LL の文字列 TdT_d が書かれています。この文字列は dd 日目の苦情を表します。

出力

標準出力に QQ 行で出力してください。dd 行目には、dd 日目に脱走した可能性のある毒蛇の毒性の合計を表す整数を出力してください。


制約