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

Bit Flag

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

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

  • test(i): $i$番目のフラグの状態がONの場合1、OFFの場合0を出力する
  • set(i): $i$番目のフラグをONにする
  • clear(i): $i$番目のフラグをOFFにする
  • flip(i): $i$番目のフラグを反転する
  • all: 全てのフラグがONになっている場合1、なっていない場合0を出力する
  • any: 何れかのフラグがONになっている場合1、なっていない場合0を出力する
  • none: 全てのフラグがOFFになっている場合1、なっていない場合0を出力する
  • count: ONになっているフラグの数を出力する
  • val: 状態の整数値を出力する

Input

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

$q$
$query_1$
$query_2$
:
$query_q$

各クエリ$query_i$は

0 $i$

または

1 $i$

または

2 $i$

または

3 $i$

または

4

または

5

または

6

または

7

または

8

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

Output

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

Constraints

  • $1 \leq q \leq 200,000$
  • $0 \leq i < 64$

Sample Input 1

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

Sample Output 1

1
0
1
0
0
1
0
3
13