2차원 맵이 있고 벽으로 둘러싸인 공간이다. 안에는 빨간 구슬 1개, 파란 구슬 1개와 하나 혹은 여러개의 ‘홀’이 존재한다.
목표부터 먼저 말하자면, 빨간 구슬을 홀에 넣기 위해 움직여야 하는 최소의 움직임 수를 구하는 것이다.
움직임은 상하좌우가 가능하다.
빨간구슬이 홀에 빠지면 성공이지만, 파란구슬이 홀에 빠지면 무조건 실패이다. 즉, 빨간구슬과 파란구슬이 동시에 홀에 빠지는 경우 실패이다.
구슬이 움직이려는 방향에 벽이 있다면 구슬은 움직이지 아니한다.
한번의 움직임은 빨간구슬과 파란구슬 동시에 적용된다.
각 테스트 케이스에 대해서  10번 이내에 움직여서 성공할 수 있는 최소의 움직임 수를 구해야 하며, 만약 10번 이내에 절대 성공할 수 없다면 -1을 출력한다.
테스트 케이스는 5개가 주어진다.
모든 테스트 케이스를 처리하는데 걸리는 시간은 1초(c,c++),4초(자바)이내여야 한다. (이것은 기억이 가물가물해서 잘못 기억해낸 것일 수도 있다.)

으아 머리가 나뻐서 ...
길만좀 알려주...

From DC Wave