산타클로스는 어떤 동네에 사는 모든 아이에게 선물을 나누어 주려고 한다. 동네의 모든 집에는 아이가 살고 있으므로, 산타는 모든 집을 빠짐없이 방문해 선물을 주어야 한다. 올해 산타를 태우고 다닐 루돌프는 길을 잘 못 찾아서, 건물이 아닌 곳에는 내릴 수 없다. 그래서 산타는 선물을 나누어 줄 방법을 미리 계획하려고 한다.
동네는 1×1 크기의 칸들로 나뉘어 있고, 각 칸은 집, 교회, 공터 중 하나이다. 교회는 정확히 한 곳뿐이다. 산타와 루돌프는 교회에서 출발하여 모든 집에 선물을 나누어 준 뒤 다시 교회로 돌아와야 하며, 다음 규칙을 지켜야 한다.
동네의 구조가 주어졌을 때, 산타와 루돌프가 선물을 나누어 줄 수 있는 방법의 수를 구하는 프로그램을 작성하시오.
첫째 줄에 동네의 가로 크기 $m$과 세로 크기 $n$이 공백으로 구분되어 주어진다. ($1 \le m, n \le 10$) 다음 $n$개의 줄에는 각각 $m$개의 수가 공백으로 구분되어 주어진다. 각 수는 해당 칸의 상태를 나타내며 0, 1, 2 중 하나이다. 0은 공터, 1은 집, 2는 교회를 뜻한다. 교회는 항상 정확히 1개이고, 집의 개수는 1개 이상 23개 이하이다.
첫째 줄에 선물을 나누어 줄 수 있는 방법의 수를 출력한다. 이 값은 2,000,000 이하임이 보장된다.