時間制限 : sec, メモリ制限 : KB
English / Japanese  

Bit Mask

それぞれがONまたはOFFである$n$個のフラグで決定される「状態」は、$0, 1, …, n-1$ 番目のフラグを1(ON)または0(OFF)で表した、1つのビット列で表すことができます。 ビット列は各桁が0または1である2進数として表されるため、状態は対応する1つの10進数の整数値として管理することができます。

また、マスクは特定のビットをONにしたビット列で、操作対象のビット列に適用することで、複数のフラグを同時にON/OFFしたり、特定のパタンのフラグの状態を抽出/除外したい場合などに用います。

64個のフラグからなる状態を管理するビット列に対して、あらかじめ与えられたいくつかのマスクを用いた以下の種類の操作を行ってください。ただし、初期状態でビット列の全てのフラグはOFFになっているものとします。

  • test(i): $i$番目のフラグの状態がONの場合は1、OFFの場合は0を出力する
  • set(m): 指定されたマスクが表す部分のフラグをまとめてONにする
  • clear(m): 指定されたマスクが表す部分のフラグをまとめてOFFにする
  • flip(m): 指定されたマスクが表す部分のフラグをまとめて反転する
  • all(m): 指定されたマスクが表す部分の全てのフラグがONになっている場合1、なっていない場合0を出力する
  • any(m): 指定されたマスクが表す部分のいずれかのフラグがONになっている場合1、なっていない場合0を出力する
  • none(m): 指定されたマスクが表す部分の全てのフラグがOFFになっている場合1、なっていない場合0を出力する
  • count(m): 指定されたマスクが表す部分のONになっているフラグの数を出力する
  • val(m): 指定されたマスクが表す部分の整数値を出力する

Input

入力は以下の形式で与えられます。

$n$
$mask_0$
$mask_1$
:
$mask_{n-1}$
$q$
$query_1$
$query_2$
:
$query_q$

$n$ はマスクの数を表す。各$mask_i$ は$i$番目のマスクのフラグの状態を表し、それぞれ以下の形式で与えられる。

$k$ $b_0$ $b_1$ ... $b_k$

$k$はONになっているビットの数を表し、続く$k$個の整数$b_j$は、$b_j$番目のビットがONになっていることを示す。

各クエリ$query_i$は$i$番目のクエリを表し、

0 $i$

または

1 $m$

または

2 $m$

または

3 $m$

または

4 $m$

または

5 $m$

または

6 $m$

または

7 $m$

または

8 $m$

の形式で与えられます。最初の数字0, 1,...,8 は操作の種類を示し、それぞれtest(i), set(m), clear(m), flip(m), all(m), any(m), none(m), count(m), val(m) を表します。

Output

各test, all, any, none, count, val操作ごとに、操作結果を1行に出力してください。

Constraints

  • $1 \leq n \leq 10$
  • $1 \leq k \leq 64$
  • $1 \leq q \leq 200,000$
  • $0 \leq i < 64$
  • $0 \leq m < n$

Sample Input 1

3
3 0 1 3
1 3
3 0 1 2
8
1 0
2 1
3 1
4 2
5 2
6 2
7 2
8 2

Sample Output 1

0
1
0
2
3