描述

二阶魔方有6个面,分别为U(p),D(own),L(eft),R(ight),F(orward),B(ack)。即上,下,左,右,前,后面。例如,下面是一个已还原的二阶魔方的展开图(图1):

(图1)            (图2)             (图3)
  UU                  UU               UF
  UU                  UU               UF
LLFFRRBB            FFRRBBLL         LLFDRRUB
LLFFRRBB            FFRRBBLL         LLFDRRUB
  DD                  DD               DB
  DD                  DD               DB

注意,尽管(图2)也是一个六个面颜色相对正确的魔方,但是在本题中,还原的定义是所有色块都严格处于其应该在的地方;换言之,本题中我们认为的还原状态只有一种,即(图1)。

我们对于一次转动的定义是:将某个面顺时针旋转90°,或逆时针旋转90°,或旋转180°。这样,由于魔方共有6个面,我们就有18种合法的转动。例如,在(图1)的状态下,将R面顺时针旋转90°,便得到了(图3)的状态。

我们的问题是,给出一个魔方,求它至少转动多少步,才能到达还原状态,即图1所示的状态。特别地,如果这不是一个合法的魔方,请输出-1。

输入格式

输入是一个以展开图形式给出的二阶魔方,格式为:

  XX
  XX
XXXXXXXX
XXXXXXXX
  XX
  XX

其中X为U,D,L,R,F,B六个字母之一;第1,2,5,6行的行首必定为2个空格。

输出格式

输出还原该魔方所需最小步数。如果无论如何都不能还原,输出-1。

样例

输入1:

  UU
  UU
UUUUUUUU
UUUUUUUU
  UU
  UU

输出1:

-1

输入2:

  UU
  UF
LLFRURBB
LLFFRRBB
  DD
  DD

输出2:

-1

输入3:

  UF
  UF
LLFDRRUB
LLFDRRUB
  DB
  DB

输出3:

1

输入4:

  UU
  UU
FFRRBBLL
FFRRBBLL
  DD
  DD

输出4:

2

数据范围与约定

在20个测试点当中,答案为-1的有3个;答案为0,1,2的各有1个;答案为3,4,5,6,7,8,9的各有2个。