今年も JOI 町にサンタクロースが空からやってきた.JOI 町にある全ての家には子供がいるので,このサンタクロースは JOI 町の全ての家にプレゼントを配ってまわらなければならない.しかし,今年は連れているトナカイが少々方向音痴であり,また建物の上以外に降りることができないため,全ての家にプレゼントを配るためには少々道順を工夫しなければならないようだ.
JOI 町は東西南北に区画整理されており,各区画は家,教会,空き地のいずれかである.JOI 町には 1 つだけ教会がある.次のルールに従い,サンタクロースとトナカイは教会から出発し,全ての家に 1 回ずつプレゼントを配った後,教会に戻る.
入力として町の構造が与えられたとき,サンタクロースとトナカイがプレゼントを配る道順が何通りあるかを求めるプログラムを作成せよ.
入力は複数のデータセットからなる.各データセットは以下の形式で与えられる.
各データセットは n+1 行ある. 1 行目には整数 m (1 ≤ m ≤ 10) と整数 n (1 ≤ n ≤ 10) が空白で区切られて書かれている. 2 行目から n+1 行目までの各行には,0,1,2 のいずれかが, 空白で区切られて m 個書かれており,各々が各区画の状態を表している. 北から i 番目,西から j 番目の区画を (i,j) と記述することにすると (1 ≤ i ≤ n, 1 ≤ j ≤ m), 第 i+1 行目の j 番目の値は, 区画 (i,j) が空き地である場合は 0 となり, 家である場合は 1 となり, 教会である場合は 2 となる. 教会の個数は 1 であり,家の個数は 1 以上 23 以下である. ただし,採点用入力データでは配る道順が 2000000 通りをこえることはない.
m, n がともに 0 のとき入力の終了を示す.データセットの数は 5 を超えない.
データセットごとに,プレゼントを配る道順が何通りあるかを表す整数を1 行に出力する.
3 2 1 0 1 1 0 2 3 3 1 1 1 1 0 1 1 1 2 0 0
2 6
図: 2つ目の入力例 に対する 6 通り全ての道順 (数字は配る順序を表す)
上記問題文と自動審判に使われるデータは、情報オリンピック日本委員会が作成し公開している問題文と採点用テストデータです。