Cell Tower là một trò chơi giải đố hằng ngày thú vị: https://www.andrewt.net/puzzles/cell-tower/.
Ở đây ta xét một phiên bản đơn giản hóa. Bạn được cho một hình vuông $8\times8$ với một ký tự trong mỗi ô và một từ điển. Hãy chia hình vuông thành nhiều phần sao cho mỗi phần là một khối liên thông và các ký tự trong khối đó (từ trên xuống dưới và từ trái sang phải) tạo thành một từ hợp lệ (tức là xuất hiện trong từ điển).
Hai ô $A,B$ được gọi là một cặp liên thông nếu chúng trực tiếp chung một cạnh, hoặc tồn tại một ô $C$ khác sao cho cả $A,C$ và $B,C$ đều là các cặp liên thông.
Một nhóm ô được gọi là khối liên thông nếu mọi cặp ô trong nhóm đều là cặp liên thông và số ô trong nhóm là $3$ hoặc $4$.
Dữ liệu vào
Mỗi dòng trong $8$ dòng đầu tiên của dữ liệu vào chứa $8$ số nguyên $Sq_{i,j}$ ($0\le Sq_{i,j}\le9$), mô tả hình vuông $8\times8$ đã cho.
Dòng tiếp theo chứa một số nguyên $n$ ($1\le n\le11000$), cho biết kích thước từ điển.
Mỗi dòng trong $n$ dòng tiếp theo chứa một xâu $S_i$ ($3\le|S_i|\le4$), mô tả một từ trong từ điển. Tập ký tự của $S_i$ là $\{0,1,2,3,4,5,6,7,8,9\}$.
Dữ liệu ra
Hãy in số cách chia hợp lệ.
Ví dụ
Dữ liệu vào 1
1 1 1 1 2 3 3 3 0 4 4 4 2 2 2 3 0 0 5 5 6 6 7 7 0 9 5 5 6 8 7 7 9 9 9 1 6 8 8 8 3 1 1 1 2 2 2 2 4 5 6 0 0 4 4 3 7 8 9 0 0 4 3 3 16 1111 2222 3333 444 0000 5555 6666 7777 8888 9999 111 333 3456 789 3478 569
Dữ liệu ra 1
2