#P2327. MX的密码锁

MX的密码锁

在赢得了友谊赛后, MX获得了无敌变身的技能,他带着技能在寒假去ZKY做了实习工,并在寒假结束之后获得了一大笔财富,MX为了不让这笔钱充公,决定将这笔私房钱藏起来,连MM也不告诉藏在哪,为此MM很是苦恼(有钱不让我花)。有一天MM在工作室偶然发现了一个小箱子,箱子上除了有一个3*3的密码锁外还写着“MX的私房钱”(MDZZ)。密码锁有以下四种操作:

1.使同一列中三个数同时向下移动一格,并使最下面的数字转动到同列第一行

2.使同一列中三个数同时向上移动一格,并使最上面的数字转动到同列最后一行

3.使同一行中三个数同时向右移动一格,并使最右面的数字转动到同行第一列

4.使同一行中三个数同时向左移动一格,并使最左面的数字转动到同行最后一列

由于密码锁潮湿生锈,每对密码锁进行一次操作需要1 min的时间,现在MX快回工作室了,MM需要将密码锁移动成初始状态来打开密码锁,但却不知道是否能赶在MX回来之前,聪明的你可以帮助MM计算最短开锁时间吗? (当开锁时间大于5时,则不能赶在MX回来之前打开,就认为密码锁无解)


如图初始状态为 294753618

目标解锁状态为123456789

Input

第一行一个数字T,表示T组输入数据 T<=10

 

接下来T行,每行包含九个数字,中间无空格隔开,表示密码锁的开始状态

Output

每组数据输出一行,一个数字,表示打开密码锁的最短时间,密码锁无解输出“impossible

 

(当开锁时间大于5时,则不能赶在MX回来之前打开,就认为密码锁无解)

Sample Input

3
123456789
531496827
846953172

Sample Output

0
3
impossible

HINT

Source