독사 탈출

2^L개의 비트마스크마다 독성 값이 주어질 때, 일부 비트만 고정하고 나머지는 자유로운 질의 Q개에 대해 조건에 맞는 마스크들의 독성 합을 구한다.

보통7비트 연산누적 합동적 계획법수학아직 제출이 없습니다시간 제한2초메모리 제한64 MB

문제

JOI 연구소에는 독사가 2L2^L마리 있다. 독사에는 0,1,,2L10, 1, \ldots, 2^L - 1의 번호가 붙어 있다. 각 독사는 머리부터 꼬리까지 LL개의 부분으로 나뉘고, 각 부분의 색은 파란색 아니면 빨간색이다. 독사 ii의 번호를 이진법으로 i=k=1Lck2Lki = \sum_{k=1}^{L} c_k 2^{L-k} (0ck10 \le c_k \le 1)라고 쓰면,

  • ck=0c_k = 0이면 독사 ii의 머리에서 kk번째 부분은 파란색이고,
  • ck=1c_k = 1이면 독사 ii의 머리에서 kk번째 부분은 빨간색이다.

각 독사에는 독성이라고 부르는 00 이상 99 이하의 정수가 하나씩 정해져 있다. 숫자 00부터 99까지로 이루어진 길이 2L2^L의 문자열 SS가 주어진다. SSii번째 문자(1i2L1 \le i \le 2^L)는 독사 i1i - 1의 독성이다.

독사는 재빨라서 JOI 연구소를 자주 탈출한다. 연구소 근처에 사는 사람들은 탈출하는 독사를 목격하면 연구소에 민원을 넣는다.

QQ일 동안 들어온 민원 목록이 주어진다. dd번째 날(1dQ1 \le d \le Q)의 민원은 문자 00, 11, ??로 이루어진 길이 LL의 문자열 TdT_d다.

  • TdT_djj번째 문자(1jL1 \le j \le L)가 00이면, dd번째 날에 연구소를 탈출한 모든 독사의 jj번째 부분이 파란색이라는 뜻이다.
  • TdT_djj번째 문자가 11이면, dd번째 날에 연구소를 탈출한 모든 독사의 jj번째 부분이 빨간색이라는 뜻이다.
  • TdT_djj번째 문자가 ??이면, dd번째 날에 탈출한 독사의 jj번째 부분에 관한 정보가 없다는 뜻이다.

모든 민원은 정확하다. 탈출한 독사는 모두 같은 날 연구소 직원이 붙잡았다. 같은 독사가 다른 날 다시 탈출할 수도 있다.

JOI 연구소의 소장인 K 교수는 독사 탈출의 위험도를 추정하려고, 날마다 탈출했을 가능성이 있는 독사의 독성 합을 알고 싶어 한다. 즉 dd번째 날에는 TdT_d의 조건과 모순되지 않는 모든 독사의 독성을 더한 값을 구해야 한다.

독사의 독성을 나타내는 문자열 SSQQ일 동안의 민원 목록이 주어질 때, 날마다 탈출했을 가능성이 있는 독사의 독성 합을 계산하는 프로그램을 작성하시오.

이 문제는 메모리 제한이 작다는 점에 주의하라.

입력

표준 입력으로 다음 데이터를 읽는다.

  • 첫째 줄에 정수 LLQQ가 공백으로 구분되어 주어진다. 각각 독사 한 마리의 부분 개수와 민원이 들어온 날의 수다.
  • 둘째 줄에 길이 2L2^L의 문자열 SS가 주어진다. 독사의 독성을 나타낸다.
  • 이어지는 QQ개의 줄 중 dd번째 줄(1dQ1 \le d \le Q)에 길이 LL의 문자열 TdT_d가 주어진다. dd번째 날의 민원이다.

출력

표준 출력에 QQ개의 줄을 출력한다. dd번째 줄에는 dd번째 날에 탈출했을 가능성이 있는 독사의 독성 합을 정수로 출력한다.

제한

  • 1L201 \le L \le 20
  • 1Q10000001 \le Q \le 1\,000\,000
  • SS는 길이 2L2^L의 문자열이다.
  • SS는 문자 0,1,2,3,4,5,6,7,8,90, 1, 2, 3, 4, 5, 6, 7, 8, 9로만 이루어진다.
  • TdT_d는 길이 LL의 문자열이다 (1dQ1 \le d \le Q).
  • TdT_d는 문자 0,1,?0, 1, ?로만 이루어진다 (1dQ1 \le d \le Q).