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

Set: Range Search

整数の集合$S$に対して、以下の操作を行ってください。ただし、集合$S$は要素の重複を許しません。

  • insert($x$): $S$に整数$x$を挿入する。さらに、挿入直後の集合$S$の要素数を報告する。
  • find($x$): $S$に含まれる$x$ の数を報告する(0 または 1)。
  • delete($x$): $S$から$x$を削除する。
  • dump($L$, $R$): $L$以上$R$以下である要素を順番に出力する。

Input

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

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

各クエリ$query_i$は

0 $x$

または

1 $x$

または

2 $x$

または

3 $L$ $R$

の形式で与えられます。最初の数字0, 1, 2, 3 は操作の種類を示し、それぞれinsert、find、delete、dump を表します。

Output

各insert操作ごとに、$S$に含まれる要素の数を1行に出力してください。また、各find操作ごとに、指定された要素の数を1行に出力してください。 さらに、各dump操作ごとに、該当する要素を昇順で1行ずつ出力してください。

Constraints

  • $1 \leq q \leq 200,000$
  • $0 \leq x \leq 1,000,000,000$
  •  
  • dump操作で出力される要素の総数は $1,000,000$ を超えない

Sample Input 1

9
0 1
0 2
0 3
2 2
1 1
1 2
1 3
0 4
3 2 4

Sample Output 1

1
2
3
1
0
1
3
3
4