AT_abc366_c [ABC366C] Balls and Bag Query

Description

[problemUrl]: https://atcoder.jp/contests/abc366/tasks/abc366_c 空の袋があります。 クエリが $ Q $ 個与えられるので、順番に処理してください。 クエリは次の $ 3 $ 種類です。 - `1 x` : 整数 $ x $ が書かれたボールを $ 1 $ つ袋に入れる。 - `2 x` : 整数 $ x $ が書かれたボールを $ 1 $ つ袋の中から取り出して外に捨てる。このクエリが与えられるとき、袋の中に整数 $ x $ が書かれたボールが存在することが保証される。 - `3` : 袋の中にあるボールに書かれている整数の種類数を出力する。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ Q $ $ \text{query}_1 $ $ \text{query}_2 $ $ \vdots $ $ \text{query}_Q $ $ i $ 番目のクエリ $ \text{query}_i $ は以下の $ 3 $ つの形式のいずれかで与えられる。 > $ 1 $ $ x $ > $ 2 $ $ x $ > $ 3 $

Output Format

$ 3 $ 種類目のクエリが $ K $ 個あるとき、$ K $ 行出力せよ。 $ i $ 行目$ (1\ \leq\ i\ \leq\ K) $ では、$ i $ 番目の $ 3 $ 種類目のクエリに対する答えを出力せよ。

Explanation/Hint

### 制約 - $ 1\ \leq\ Q\ \leq\ 2\ \times\ 10^{5} $ - $ 1\ \leq\ x\ \leq\ 10^{6} $ - $ 2 $ 種類目のクエリが与えられるとき、袋の中に整数 $ x $ が書かれたボールが存在する。 - $ 3 $ 種類目のクエリが $ 1 $ つ以上存在する。 - 入力はすべて整数 ### Sample Explanation 1 はじめ、袋の中は空です。 $ 1 $ 番目のクエリ `1 3` で袋の中に $ 3 $ が書かれたボールが $ 1 $ つ入ります。 $ 2 $ 番目のクエリ `1 1` で袋の中に $ 1 $ が書かれたボールが $ 1 $ つ入ります。 $ 3 $ 番目のクエリ `1 4` で袋の中に $ 4 $ が書かれたボールが $ 1 $ つ入ります。 $ 4 $ 番目のクエリ `3` で袋の中に $ 1,\ 3,\ 4 $ の $ 3 $ 種類のボールが入っているため、$ 3 $ を出力します。 $ 5 $ 番目のクエリ `2 1` で袋の中から $ 1 $ が書かれたボールを $ 1 $ つ取り出します。 $ 6 $ 番目のクエリ `3` で袋の中に $ 3,\ 4 $ の $ 2 $ 種類のボールが入っているため、$ 2 $ を出力します。 $ 7 $ 番目のクエリ `1 5` で袋の中に $ 5 $ が書かれたボールが $ 1 $ つ入ります。 $ 8 $ 番目のクエリ `3` で袋の中に $ 3,\ 4,\ 5 $ の $ 3 $ 種類のボールが入っているため、$ 3 $ を出力します。