색종이 붙이기
시간 제한4초메모리 제한512 MB
N×M 격자에서 색칠되지 않은 모든 칸을 색종이가 덮을 수 있는 종이 크기(세로와 가로)의 개수를 구합니다.
문제
현욱은 학교 미술 과제로 여러 장의 색종이를 붙여 만든 작품을 내려고 한다. 현욱은 우선 색종이를 붙일 수 있도록 위아래로 칸, 좌우로 칸 크기()인 직사각형 모양의 모눈 종이를 준비했다.
현욱은 이 모눈 종이의 일부 칸에 색을 칠하고, 나머지 칸은 색종이를 붙여서 채우려고 한다. 현욱은 가로와 세로 길이가 모눈 크기의 배수인 여러 종류의 색종이를 가지고 있다. 이 중 한 종류를 골라 그 색종이만으로 모든 칸을 채우려고 하며, 다음 조건을 만족해야 한다.
- 색종이는 모눈 칸에 정확히 맞춰 붙여야 하며, 회전할 수 없다.
- 색종이끼리는 겹쳐 붙여도 되지만, 이미 색을 칠해 둔 칸과 겹쳐 붙여서는 안 된다.
- 색칠되지 않은 모든 칸은 한 장 이상의 색종이로 덮여 있어야 한다.
현욱은 이 조건을 만족하는 색종이 크기가 몇 종류인지 궁금해졌다. 현욱을 도와 주어진 조건을 만족하는 색종이 크기의 경우의 수를 계산해 보자.
입력
첫 줄에 종이의 크기 , 이 공백으로 구분되어 주어진다().
둘째 줄부터 줄에 걸쳐 모눈 종이의 현재 상태가 주어진다. '.'은 색이 칠해지지 않은 칸, '#'은 색이 칠해진 칸이다. 색이 칠해지지 않은 칸은 반드시 하나 이상 있다.
출력
첫째 줄에 문제의 조건을 만족하는 색종이 크기가 몇 종류인지 출력한다.