#D12958. Set: Range Search

    ID: 10776 Type: Default 4000ms 268MiB

Set: Range Search

For a set SS of integers, perform a sequence of the following operations. Note that each value in SS must be unique.

  • insert(xx): Insert xx to SS and report the number of elements in SS after the operation.
  • find(xx): Report the number of xx in SS (0 or 1).
  • delete(xx): Delete xx from SS.
  • dump(LL, RR): Print elements xx in SS such that LxRL \leq x \leq R.

Constraints

  • 1q200,0001 \leq q \leq 200,000
  • 0x1,000,000,0000 \leq x \leq 1,000,000,000
  • The total number of elements printed by dump operations does not exceed 1,000,0001,000,000

Input

The input is given in the following format.

qq query1query_1 query2query_2 : queryqquery_q

Each query queryiquery_i is given by

0 xx

or

1 xx

or

2 xx

or

3 LL RR

where the first digits 0, 1, 2 and 3 represent insert, find, delete and dump operations respectively.

Output

For each insert operation, print the number of elements in SS. For each find operation, print the number of specified elements in SS. For each dump operation, print the corresponding elements in ascending order. Print an element in a line.

Example

Input

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

Output

1 2 3 1 0 1 3 3 4

inputFormat

Input

The input is given in the following format.

qq query1query_1 query2query_2 : queryqquery_q

Each query queryiquery_i is given by

0 xx

or

1 xx

or

2 xx

or

3 LL RR

where the first digits 0, 1, 2 and 3 represent insert, find, delete and dump operations respectively.

outputFormat

Output

For each insert operation, print the number of elements in SS. For each find operation, print the number of specified elements in SS. For each dump operation, print the corresponding elements in ascending order. Print an element in a line.

Example

Input

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

Output

1 2 3 1 0 1 3 3 4

样例

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

2 3 1 0 1 3 3 4

</p>