H행 W열로 칸이 놓인 직사각형 판이 있다. 행에는 위에서 아래로 1번부터 H번까지, 열에는 왼쪽에서 오른쪽으로 1번부터 W번까지 번호를 붙인다. i행 j열의 칸을 (i,j)로 쓴다. 각 칸은 검은색이거나 흰색이다.
다음 연산으로 판을 칠한다.
연산 한 번은 칸 i×j개를 칠한다. 연산으로 색이 실제로 바뀌지 않은 칸도 칠한 칸으로 센다.
예를 들어 3×4 판에서 칸 (2,3)과 검은색을 골랐다고 하자. 이 연산은 (1,1), (1,2), (1,3), (2,1), (2,2), (2,3) 여섯 칸을 검은색으로 칠하므로, 이미 검은색이던 칸까지 세어 6칸을 칠한다.
판이 목표 색칠과 같아질 때까지 연산을 반복하고, 처음으로 같아지는 순간에 멈춘다. 처음 색칠과 목표 색칠이 주어질 때, 멈출 때까지 칠한 칸 수 총합의 기댓값을 구하라.
입력은 여러 개의 데이터 집합으로 이루어지고, 데이터 집합은 최대 100개이다.
각 데이터 집합의 첫 줄에는 판의 행 수와 열 수인 정수 H와 W가 주어진다 (1≤H,W≤5). 이어서 처음 색칠이 주어지고, 그 뒤에 목표 색칠이 주어진다. 색칠 하나는 W개의 문자로 된 H개의 줄로 주어지며, B는 검은 칸, W는 흰 칸을 뜻한다. 두 색칠 사이에 빈 줄이 하나 있고, 각 데이터 집합 뒤에도 빈 줄이 하나 있다.
입력의 끝은 0 두 개가 적힌 줄이다. 이 줄은 데이터 집합으로 처리하지 않는다.
각 데이터 집합마다 칠한 칸 수 총합의 기댓값을 기약분수 p/q 꼴로 한 줄에 출력한다. 분자, 빗금, 분모를 차례로 쓰며 q≥1이고 gcd(p,q)=1이어야 한다. 분모가 1이어도 함께 쓴다. 기댓값이 120이면 120/1로 출력한다. 처음 색칠이 목표 색칠과 이미 같으면 연산을 하지 않으므로 답은 0/1이다.
기댓값은 항상 유한한 유리수이다.