AT_code_festival_relay_d FU
Description
[problemUrl]: https://atcoder.jp/contests/code-festival-2014-relay/tasks/code_festival_relay_d
X さんとY さんは`FU`という名前のゲームで遊んでいます。
このゲームは、縦横ともに長さ $ n $ で $ n\ \times\ n $ 個の正方形のマスに区切られた盤面と`FU`という駒を用いて行われ、X さんは盤面の最上行の各マスに $ 1 $ つずつ自分の`FU`を下向きに、Y さんは盤面の最下行の各マスに $ 1 $ つずつ自分の`FU`を上向きに置いたところから始まります。
プレイヤーは以下のルールに従い、交互に自分の`FU`をひとつ選んで移動させるということを繰り返します。
- X さんの`FU`は、現在置かれているマスの下に隣接するマスへしか移動できません
- Y さんの`FU`は、現在置かれているマスの上に隣接するマスへしか移動できません
- 自分の`FU`を相手の`FU`と同一マスに置くことで、相手の`FU`を取ります
このゲームでは、自分の手番をパスすることや、二度続けて自分の`FU`を動かすことはできません。相手の`FU`をすべて取ったプレイヤーが勝ちです。
ぬまくんさんは X さんと Y さんの試合を途中から観戦したのですが、どちらが先手か聞いても、X さんと Y さんは試合に深く集中しているため、答えてくれません。幸い、試合は始まったばかりでどちらも相手の`FU`を取っていないので、盤面の状態からどちらが先手かわかるかもしれません。
そこで、現在の盤面の状態を入力に受け取って、どちらが先手かを求めるプログラムを作成してください。
Input Format
入力は以下の形式で与えられる。
> $ n $ $ B_{1,1}B_{1,2}...B_{1,\ n} $ $ B_{2,1}B_{2,2}...B_{2,\ n} $ $ ... $ $ B_{n,1}B_{n,2}...B_{n,\ n} $
- $ 1 $ 行目には、盤面の一辺あたりの大きさを表す整数 $ n $ ($ 2\ \leq\ n\ \leq\ 100) $ が与えられる。
- 続く $ n $ 行には、盤面の各行の情報が最上行から最下行にかけて順に与えられる。
- $ B $ の各要素はマスの状態を表しており、`.`、`X`、`Y`のいずれかの文字からなる。
- `.`はそのマスに何も駒が置かれていないことを意味し、`X`と`Y`はそれぞれ X さん、Y さんの`FU`がそのマスにあることを意味する。
- 各列において、必ず`X`と`Y`が一つずつ存在しており、また、必ず`X`が`Y`よりも上の行に位置することが保証される。
- 入力として与えられる盤面は、ゲームのルールと矛盾しないことが保証される。
Output Format
X さんが先手の場合は`X`を、Y さんが先手の場合は`Y`を $ 1 $ 行で出力せよ。
また、どちらが先手か決められない場合は`Impossible`と $ 1 $ 行で出力せよ。
最後は改行し、余計な文字、空行を含まないこと。