AT_abc477_d [ABC477D] Masking Tape
Description
$ N $ 個のマスが横一列に並んでおり、左から順にマス $ 1 $ からマス $ N $ までの番号がついています。色は英小文字で表されます。
はじめ、すべてのマスの色は `a` で、各マスには何も置かれていません。
$ Q $ 個のクエリが与えられるので、与えられた順に処理してください。各クエリは以下の $ 2 $ 種類のいずれかです。
- `1 X` : マス $ X $ にタイルが置かれていなければタイルを置き、置かれていれば取り除く。
- `2 C` : タイルが置かれていないすべてのマスの色を $ C $ に変更する。
すべてのクエリを処理した後の各マスの色を(タイルが置かれているかどうかにかかわらず)求めてください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ Q $ $ \mathrm{query}_1 $ $ \vdots $ $ \mathrm{query}_Q $
各クエリ $ \mathrm{query}_i ~ (1 \le i \le Q) $ は
> $ 1 $ $ X $
または、
> $ 2 $ $ C $
の形で与えられる。
Output Format
最終的な各マスの色を、左から順につなげた長さ $ N $ の文字列として出力せよ。
Explanation/Hint
### Sample Explanation 1
タイルの状態について、置かれているならば `#`、 そうでないならば `.` として左から順につなげた文字列で表現をすることにします。
クエリによって、以下のようにマスの色・タイルの状態が変化します。はじめの状態は `aaa` と `...` です。
- $ 1 $ つ目のクエリを処理すると、マス $ 2 $ にタイルが置かれる。状態は `aaa` と `.#.` となる。
- $ 2 $ つ目のクエリを処理すると、タイルの置かれていないマスの色が `b` に変更される。状態は `bab` と `.#.` となる。
- $ 3 $ つ目のクエリを処理すると、マス $ 1 $ にタイルが置かれる。状態は `bab` と `##.` となる。
- $ 4 $ つ目のクエリを処理すると、マス $ 2 $ のタイルが取り除かれる。状態は `bab` と `#..` となる。
- $ 5 $ つ目のクエリを処理すると、タイルの置かれていないマスの色が `c` に変更される。状態は `bcc` と `#..` となる。
よって `bcc` と出力してください。マス $ 1 $ にはタイルが置かれたままですが、その場合であってもマスの色を出力します。
### Constraints
- $ 1 \le N,Q \le 3\times 10^5 $
- 各クエリはタイプ $ 1 $ またはタイプ $ 2 $ のいずれか
- タイプ $ 1 $ のクエリにおいて、 $ X $ は $ 1 \le X \le N $ を満たす整数
- タイプ $ 2 $ のクエリにおいて、 $ C $ は英小文字 $ 1 $ 文字