#include <bits/stdc++.h>
using namespace std;

const int N = 22;
const int mod = 1e9 + 7;

int n, a[N][N];
int f[N][1 << N];

int main() {
	scanf("%d", &n);
	for(int i = 1; i <= n; ++i) {
		for(int j = 1; j <= n; ++j) scanf("%d", &a[i][j]);
	}
	f[0][0] = 1;
	for(int i = 1; i <= n; ++i) {
		for(int k = 0; k < n; ++k) {
			if(a[i][k + 1]) {
				for(int j = 0; j < (1 << n); ++j) {
					if(!((j >> k) & 1)) {
						(f[i][j | (1 << k)] += f[i - 1][j]) %= mod;
					}
				}
			}
		}
	}
	printf("%d\n", f[n][(1 << n) - 1]);
}