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