AT_arc209_a [ARC209A] Bracket Game
Description
`(` と `)` のみからなる文字列 $ S $ があります。
太郎君と次郎君はこの文字列を使って以下のゲームをします。
太郎君が先手、次郎君が後手となり、以下の $ 3 $ 種類の操作のうちいずれか $ 1 $ つを選んで行うことを交互に繰り返します。
- $ S $ の先頭の文字を削除する。
- $ S $ の末尾の文字を削除する。
- 終了宣言をする。
$ S $ の長さがちょうど $ K $ になったとき、あるいはいずれかのプレイヤーが終了宣言をした時点で、ゲームが終了します。ゲームの終了時点で $ S $ が正しい括弧列であるならば次郎君の勝利、そうでないならば太郎君の勝利となります。
ゲーム開始前の $ S $ が与えられるので、両者が最適に行動した場合の勝者を求めてください。
$ T $ 個のテストケースが与えられるので、それぞれについて解いてください。
正しい括弧列とは正しい括弧列とは、`()` である部分文字列を削除することを $ 0 $ 回以上繰り返して空文字列にできる文字列を指します。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ T $ $ case_1 $ $ case_2 $ $ \vdots $ $ case_T $
各ケースは以下の形式で与えられる。
> $ S $ $ K $
Output Format
各テストケースについて、太郎君が勝つならば `First`、次郎君が勝つならば `Second` を出力せよ。
Explanation/Hint
### Sample Explanation 1
$ 1 $ つ目のテストケースについて、ありうるゲームの進行の例を示します。
- ゲーム開始前の $ S $ は `(()())` です。
- 太郎君が $ S $ の先頭の文字を削除し `()())` となります。
- 次に次郎君が $ S $ の末尾の文字を削除し `()()` となります。
- 次に太郎君が $ S $ の末尾の文字を削除し `()(` となります。
- 次に次郎君が $ S $ の末尾の文字を削除し `()` となり、 $ S $ の長さが $ K=2 $ となったのでゲームが終了します。
- 最終的な $ S $ は正しい括弧列なので次郎君の勝利となります。
$ 3 $ つ目のテストケースでは例えば太郎君が最初のターンで終了宣言をすることで太郎君の勝利となります。
### Constraints
- $ 1 \le T \le 10^5 $
- $ 1 \le K < |S| \le 10^6 $
- $ S $ は `(` と `)` のみからなる文字列
- $ T, K $ は整数
- すべてのテストケースにわたる $ |S| $ の総和は $ 10^6 $ 以下