Problem hidden
|This problem was hidden by Editorial Board member probably because it has incorrect language|version or invalid test data, or description of the problem is not clear.|

PTIT128A - Trò chơi xếp hình

Trò chơi có một bảng 6*6 và một tập các khối dọc (2x1 hoặc 3x1) và các khối ngang (1x2 hoặc 1x3). Bạn chỉ có thể di chuyển các khối ngang theo chiều ngang và các khối dọc theo chiều dọc và chỉ di chuyển được nếu không có khối nào hoặc không có tường trên đường đi của nó.

Có một khối ngang 1x2 đặc biệt và một khoảng trống ở trên rìa bên phải của bảng cùng hàng với khối ngang đặc biệt đó. Và chỉ có khối ngang này đi qua vừa. Quá trình di chuyển một khối qua bất cứ bao nhiêu ô vuông cũng chỉ tính là 1 di chuyển.

Hãy viết chương trình tính số di chuyển tối thiểu để chơi xong trò chơi (tức là đưa được khối đặc biệt ra khỏi bảng)

Input

Gồm nhiều bộ test, mỗi bộ test gồm:

  • Dòng đầu tiên chứa chữ cái mô tả khối đặc biệt.
  • 6 dòng tiếp theo mô tả trạng thái của các hàng trong bảng. Các ký tự mô tả các khối. Các dấu chấm (.) là ô trống.

Dữ liệu vào kết thúc với dòng chứa duy nhất dấu *

Output

Ghi trên một dòng số bước tối thiểu để chơi xong trò chơi. Nếu không thể, ghi ra số -1.

Example

Input:

C

..AB..

..AB..

CCAB..

......

.DDEE.

......

A

......

......

......

......

AA....

......

Z

.ZZ..X

.....X

.....X

.....Y

.....Y

.....Y

* Output:

5

1

-1

Được gửi lên bởi:adm
Ngày:2012-04-04
Thời gian chạy:30s
Giới hạn mã nguồn:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Ngôn ngữ cho phép:ASM32-GCC ASM32 MAWK BC C CSHARP C++ 4.3.2 CPP CPP14 COFFEE LISP sbcl DART FORTH GO JAVA JS-RHINO JS-MONKEY KTLN OCT PAS-GPC PAS-FPC PERL PERL6 PROLOG PYTHON PYTHON3 PY_NBC R RACKET SQLITE SWIFT UNLAMBDA

© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.