#include <iostream>
#include <vector>
#define mod 1000000007
using namespace std;
int a[30][30];
int n;
int dp[2100000],cnt[2100000];
int main(int argc, char** argv) {
	cin >> n;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
			cin >> a[i][j];
	}
	for(int i=1;i<=2099000;i++)
		cnt[i]=cnt[i^i&(-i)]+1;
	dp[0]=1;
	for(int i=1;i<=n;i++)
	{
		for(int j=0;j<(1<<n);j++)
		{
			if(cnt[j]!=(i-1)) continue;
			for(int k=1;k<=n;k++)
			{
				if(!a[i][k]) continue;
				if(j&(1<<k-1)) continue;
				dp[j|(1<<k-1)]+=dp[j],dp[j|(1<<k-1)]%=mod;
			}
		}
	}
	cout << dp[(1<<n)-1];
	return 0;
}