R x C 격자의 빈 칸 부분집합 가운데 각 행에 허수아비가 하나 이상 있고 이웃한 두 열마다 허수아비가 하나 이상 있는 경우의 수를 1e9+7로 나눈 나머지로 구한다.
Nerissa는 R×CR \times CR×C 크기의 직사각형 논을 가지고 있다. 논은 크기가 같은 작은 정사각형 칸 RRR행 CCC열로 나뉜다. 각 칸은 빈 흙(어떤 용도로도 쓸 수 있는 빈 칸) 또는 벼가 심긴 흙이다.
새나 참새 같은 새가 작물을 해치지 못하도록 Nerissa는 논에 허수아비를 세우기로 했다. 허수아비는 빈 칸에만 놓을 수 있다. 또한 다른 사람이 작물을 훔치지 못하도록 허수아비 배치는 신성해야 한다. 배치가 신성하다는 것은 다음 조건을 모두 만족한다는 뜻이다:
신성한 배치는 서로 몇 가지인가? 한 배치에만 허수아비가 있는 칸이 있으면 두 배치는 서로 다르다. 이 개수를 구하라.
첫째 줄에 논 크기를 나타내는 두 정수 RRR CCC (1≤R≤141 \le R \le 141≤R≤14, 1≤C≤10001 \le C \le 10001≤C≤1000)가 주어진다. 다음 RRR줄에 논 상태가 주어진다. 각 줄은 길이가 CCC인 문자열이다. 각 칸은 빈 흙을 뜻하는 . 또는 벼가 심긴 흙을 뜻하는 v로 표시된다.
.
v
서로 다른 신성한 배치의 개수를 한 줄에 출력한다. 출력이 매우 클 수 있으므로 1,000,000,0071,000,000,0071,000,000,007로 나눈 나머지를 출력한다.
두 번째 샘플에서는 가능한 배치가 5가지이다. 한 행에 놓을 수 있는 위치가 세 칸이므로 비어 있지 않은 부분집합 중에서 양쪽 이웃 열 쌍을 모두 덮는 경우가 5가지가 된다.
세 번째 샘플에서는 첫 행에 허수아비를 놓을 칸이 없다. 각 행에 최소 하나가 있어야 하므로 가능한 배치가 없다.
다섯 번째 샘플에서도 가능한 배치가 5가지이다. 두 행의 빈 칸 위치가 서로 어긋나 있어 행 조건과 열 쌍 조건을 함께 만족하는 경우가 5가지로 제한된다.