Desvendando as Formigas

Wilson é um grande admirador de formigas e quer estudar melhor uma espécie, buscando aprender mais sobre seus hábitos.

Para isso, ele observa uma trilha reta, dividida em posições identificadas por números inteiros. Cada posição pode ser ocupada por, no máximo, uma formiga. No início do estudo, não há formigas na trilha.

Ao longo do estudo, acontecem três tipos de eventos (numerados de 11 a 33), cada um associado a um número (denotado por xx):

Replique o estudo realizado por Wilson, processando os eventos na ordem em que ocorreram e imprimindo a quantidade contada por ele em cada evento do tipo 33.

Entrada

A primeira linha contém um inteiro QQ (1≤Q≤5⋅105)(1 \leq Q \leq 5 \cdot 10^5): o número de eventos.

Cada uma das próximas QQ linhas contém dois inteiros tt e vv, com t∈{1,2,3}t \in \{1,2,3\} e |v|<263|v| < 2^{63}. tt é o tipo do evento e vv é o valor do número xx associado a este evento, mas codificado.

Para obter o valor real de xx, você deve tomar x=v⊕rx = v \oplus r, onde:

Isso significa que o valor de xx pode ser obtido pela representação binária resultante da operação v⊕rv \oplus r. Nessa representação, se o 6464-ésimo bit menos significativo possuir valor 00, os dígitos binários representam exatamente o número xx. Caso contrário, eles representam 264+x2^{64} + x. É garantido que |x|≤109|x| \leq 10^9.

Além disso, também é garantido que existe pelo menos um evento do tipo 33.

Saída

Para cada evento do tipo 33, imprima uma linha contendo um único inteiro: a quantidade de formigas na trilha em posições à esquerda de xx.

Observações

Note que, se sua solução imprimir um valor incorreto para um evento do tipo 33, para os eventos seguintes o valor de xx pode ser decodificado incorretamente (considerando que a solução atualiza rr de acordo). Perceba que isso pode resultar em vereditos diferentes de Wrong Answer, mesmo que a solução de fato tenha imprimido um resultado incorreto.

Exemplos

Entrada

12
1 3
1 -2
3 3
1 3
1 3
2 -3
3 -2
1 -4
2 7
3 6
3 -12
3 100

Saída

1
2
2
0
3

Explicação

Inicialmente, não há formigas na trilha e r = 0.

Nos dois primeiros eventos, como ainda não houve nenhum evento do tipo 3, obtemos x diretamente com x = v. Assim, entram formigas nas posições 3 e −2. A trilha contém formigas nas posições {−2, 3}.

No terceiro evento, temos x = 3. Existe apenas uma formiga estritamente à esquerda de 3, na posição −2. Portanto, imprimimos 1 e passamos a ter r = 1.

No evento seguinte, o valor fornecido é v = 3. Como r = 1, o valor real é x = 3 ⊕ 1 = 2. Portanto, uma nova formiga entra na posição 2, e as posições ocupadas passam a ser {−2, 2, 3}.

O evento seguinte é novamente 1 3, que também é decodificado como x = 2. Como já existe uma formiga nessa posição, ela é substituída pela nova, e o conjunto de posições ocupadas não muda.

No sexto evento, temos v = −3 e r = 1. Interpretando o XOR nas representações de 64 bits, obtemos x = (−3) ⊕ 1 = −4. Todas as formigas se deslocam, então, 4 posições para a esquerda. Suas novas posições são {−6, −2, −1}.

No próximo evento, v = −2, e x = (−2) ⊕ 1 = −1. Existem duas formigas estritamente à esquerda de −1, nas posições −6 e −2. A formiga que está exatamente em −1 não é contada. Portanto, imprimimos 2 e r passa a ser 2.

Em seguida, 1 -4 é decodificado como x = −2. Já existe uma formiga nessa posição, então ela é apenas substituída.

No evento 2 7, temos x = 7 ⊕ 2 = 5. Todas as formigas se deslocam 5 posições para a direita, passando para {−1, 3, 4}.

No evento 3 6, x = 6 ⊕ 2 = 4. As formigas nas posições −1 e 3 estão à esquerda de 4, enquanto a formiga na própria posição 4 não é contada. Portanto, imprimimos 2.

No evento seguinte, x = (−12) ⊕ 2 = −10. Não há nenhuma formiga à esquerda de −10, então imprimimos 0. Com isso, r volta a ser 0.

Por fim, como r = 0, o último valor não é alterado: x = 100. As três formigas estão à esquerda dessa posição, então imprimimos 3.