AT_abc394_d [ABC394D] Colorful Bracket Sequence

Description

$ 6 $ 種類の文字、`(`, `)`, `[`, `]`, `` からなる文字列 $ S $ が与えられます。 ここで、文字列 $ T $ は、以下の条件を満たすときカラフル括弧列と呼ばれます。 > 以下の操作を何回か( $ 0 $ 回でも良い)繰り返すことで、 $ T $ を空文字列にできる。 > > - $ T $ の(連続する)部分文字列であって、`()`, `[]`, `` のいずれかであるようなものが存在するとき、そのうちの $ 1 $ つを選んで削除する。 > - 削除された部分文字列が $ T $ の先頭または末尾であるとき、残りの文字列を新たに $ T $ とする。 > - そうでないとき、削除された前後の文字列を $ 1 $ つに連結し、新たに $ T $ とする。 $ S $ がカラフル括弧列であるか判定してください。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ S $

Output Format

$ S $ がカラフル括弧列ならば `Yes` を、そうでないならば `No` を出力せよ。

Explanation/Hint

### Sample Explanation 1 $ S= $ `([])()` に対して、次のように操作を繰り返すことで空文字列にすることができます。 - `([])()` の $ 2 $ 文字目から $ 3 $ 文字目までをとった部分文字列 `[]` を削除し、前後を連結する。文字列は新たに `()()` となる。 - `()()` の $ 1 $ 文字目から $ 2 $ 文字目までをとった部分文字列 `()` を削除する。文字列は新たに `()` となる。 - `()` の $ 1 $ 文字目から $ 2 $ 文字目までをとった部分文字列 `` を削除する。文字列は新たに `()` となる。 - `()` の $ 1 $ 文字目から $ 2 $ 文字目までをとった部分文字列 `()` を削除する。文字列は空文字列となる。 よって、 $ S= $ `([])()` はカラフル括弧列であるため、`Yes` を出力します。 ### Sample Explanation 2 $ S= $ `([` は `()`, `[]`, `` を部分列として含まないため、 $ 1 $ 回目の操作を行うことができず、特に $ S $ はカラフル括弧列ではありません。よって、`No` を出力します。 ### Sample Explanation 3 $ S $ に対して操作を繰り返し、空文字列とすることはできません。 よって、 $ S $ はカラフル括弧列ではないため、`No` を出力します。 ### Constraints - $ S $ は長さ $ 1 $ 以上 $ 2\times 10^5 $ 以下の文字列 - $ S $ は `(`, `)`, `[`, `]`, `` のみからなる。