给定一个大小为 $N \times M$ 的网格 $A$。每一行编号从 $1$ 到 $N$,每一列编号从 $1$ 到 $M$。位于第 $r$ 行第 $c$ 列的单元格记作 $(r, c)$。
单元格 $(r, c)$ 包含一个整数 $A_{r,c}$,它可以是 $-1$ 或非负整数。如果 $A_{r,c} = -1$,则表示单元格 $(r, c)$ 是不可通行的。否则,单元格 $(r, c)$ 是可通行的。
两名玩家轮流在网格上进行游戏。在每一回合中,玩家执行以下操作:
- 选择一个包含正整数的单元格,玩家从该单元格开始。设该起始单元格上的整数为 $x$。
- 选择一个非负整数 $y$,使得 $y < x$。
- 假设玩家当前位于单元格 $(r, c)$。将 $A_{r,c}$ 的值更新为 $A_{r,c} \oplus x \oplus y$,其中 $\oplus$ 是按位异或运算符。
- 如果单元格 $(r + 1, c)$ 或 $(r, c + 1)$ 是可通行的,玩家必须移动到玩家选择的任一可通行单元格。然后,重复步骤 3。
- 如果玩家无法继续移动,玩家将走出网格并结束他的回合。
在自己的回合中无法进行操作(即没有正整数)的玩家输掉游戏,另一名玩家获胜。
若两名玩家均采取最优策略,确定谁将赢得游戏。
输入格式
输入包含两个整数 $N, M$ ($1 \le N, M \le 500$),表示网格 $A$ 的大小。接下来的 $N$ 行,每行包含 $M$ 个整数 $A_{r,c}$ ($0 \le A_{r,c} \le 10^9$ 或 $A_{r,c} = -1$),表示单元格 $(r, c)$ 中包含的整数。
输出格式
如果先手玩家获胜,输出 first。否则,输出 second。
样例
样例输入 1
5 6 0 0 0 0 0 0 0 3 3 0 0 0 0 0 3 -1 0 0 0 0 3 3 3 3 0 0 -1 -1 -1 -1
样例输出 1
first
说明 1
先手玩家可以从 $(2, 2)$ 开始他的回合并选择 $y = 0$。然后,他可以继续沿着包含整数 $3$ 的单元格移动,并将这些单元格的值更新为 $3 \oplus 3 \oplus 0 = 0$。第一回合结束后,网格中不再有正整数,因此后手玩家无法进行操作。
样例输入 2
2 2 1 1 2 -1
样例输出 2
first
说明 2
先手玩家在第一回合中有 $5$ 种选择,如下图所示。每种选择都有不同的起始单元格(缩写为 SC)、$y$ 的值以及先手玩家所走的路径。所走的路径由红色阴影单元格标出。
先手玩家保证获胜的最优走法是选项 1 或 2。
样例输入 3
1 1 -1
样例输出 3
second
说明 3
初始网格中没有包含正整数的单元格。后手玩家默认获胜。