それぞれがONまたはOFFである$n$個のフラグで決定される「状態」は、$0, 1, …, n-1$ 番目のフラグを1(ON)または0(OFF)で表した、1つのビット列で表すことができます。 ビット列は各桁が0または1である2進数として表されるため、状態は対応する1つの10進数の整数値として管理することができます。
また、マスクは特定のビットをONにしたビット列で、操作対象のビット列に適用することで、複数のフラグを同時にON/OFFしたり、特定のパタンのフラグの状態を抽出/除外したい場合などに用います。
64個のフラグからなる状態を管理するビット列に対して、あらかじめ与えられたいくつかのマスクを用いた以下の種類の操作を行ってください。ただし、初期状態でビット列の全てのフラグはOFFになっているものとします。
入力は以下の形式で与えられます。
$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) を表します。
各test, all, any, none, count, val操作ごとに、操作結果を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
0 1 0 2 3