#2208. 矩阵填数

矩阵填数

Description

如果你在一个方阵中取出n个数,且每行每列恰有一个,无论你的取法如何,所有被取出数的和都是一样的。那么我们把这个矩阵叫做AK方阵。

给出一个n*n的方阵,有一些位置已经填好了0~9的数,有一些位置尚未填好(用字符’-‘表示)。你需要在每一个’-’位置处填写一个非负整数(不一定要<=9)使得整个矩阵成为一个AK方阵,请你求出所有的填数方法有多少种?输出答案对1000000007取模的余数。

Format

Input

输入n行,每行n个字符表示给出的方阵

Output

输出一行一个数表示所求答案

Samples

0---
-1--
--2-
---3
24

Limitation

【数据规模与约定】

对于30%的数据,保证方案的总数不超过10000000

对于100%的数据,n<=50,保证方案的总数有限