어린 빛의 왕은 장난감을 좋아한다. 요즘 가장 좋아하는 장난감은 N×M 크기 직사각형 판의 각 칸에 대각선 거울을 꽂았다 뺐다 할 수 있는 장난감이다. 거울을 원하는 대로 꽂은 다음 테두리 칸 하나의 중심을 향해 그 칸의 바깥 변과 수직으로 레이저를 쏘면 레이저가 다른 칸으로 빠져나온다. 어린 빛의 왕은 이 모습을 신기해한다.
어린 빛의 왕은 테두리에 있는 각 칸에 다음 방법으로 자연수 번호를 하나씩 붙였다.
모서리 칸은 두 변이 판 바깥과 닿으므로 번호를 두 개 받는다. 예를 들어 N=2, M=3인 판에서 첫 행의 세 칸은 왼쪽부터 1, 2, 3번이고, 왼쪽 열의 두 칸은 위에서부터 4, 5번, 오른쪽 열의 두 칸은 위에서부터 6, 7번, 마지막 행의 세 칸은 왼쪽부터 8, 9, 10번이다. 왼쪽 위 칸은 1번이면서 동시에 4번이다. 번호는 레이저가 드나드는 변까지 가리킨다. 1번으로 쏜 레이저는 왼쪽 위 칸의 위쪽 변을 지나 아래로 들어가고, 4번으로 쏜 레이저는 같은 칸의 왼쪽 변을 지나 오른쪽으로 들어간다. y번으로 빠져나온다는 말은 레이저가 y번이 가리키는 변을 지나 판 바깥으로 나간다는 뜻이다.
어린 빛의 왕은 요즘 x번으로 쏜 레이저가 y번으로 빠져나오는 장난감에 큰 관심을 가진다. 그가 원하는 거울 배치는 길이가 M인 문자열 N개로 주어지고, 각 문자의 뜻은 다음과 같다.
/ : 왼쪽에서 들어온 레이저를 위쪽으로, 위쪽에서 들어온 레이저를 왼쪽으로, 오른쪽에서 들어온 레이저를 아래쪽으로, 아래쪽에서 들어온 레이저를 오른쪽으로 반사하는 거울.\ : 왼쪽에서 들어온 레이저를 아래쪽으로, 위쪽에서 들어온 레이저를 오른쪽으로, 오른쪽에서 들어온 레이저를 위쪽으로, 아래쪽에서 들어온 레이저를 왼쪽으로 반사하는 거울.. : 거울이 없어 레이저가 아무 방해도 받지 않고 지나가는 칸.? : 위 셋 중 어느 것이 와도 상관없는 칸.?가 많을수록 만들 수 있는 배치도 많아진다. 그중 x번으로 쏜 레이저가 y번으로 빠져나오는 배치가 몇 개인지 세는 프로그램을 작성하라.
첫 줄에 직사각형 판의 크기를 뜻하는 두 정수 N, M (1≤N,M≤8)과 x, y (1≤x,y≤2(N+M))가 공백으로 구분되어 주어진다.
다음 N개 줄에는 각각 길이가 M인 문자열이 주어진다. 이 문자열은 /, \, ., ?로만 이루어져 있다.
판 전체에서 ?의 개수는 12개 이하이다.
첫 줄에 x번으로 쏜 레이저가 y번으로 빠져나오는 배치의 개수를 10007로 나눈 나머지를 출력한다.