#cf16exhibitionfinalh. [cf16_exhibition_final_h]AB=C Problem

[cf16_exhibition_final_h]AB=C Problem

问题描述

#nck { width: 30px; height: auto; }

Snuke 收到了两个矩阵 AABB 作为生日礼物。每个矩阵都是一个 NNNN 列的矩阵,只包含 0011

然后他计算了两个矩阵的乘积,C=ABC = AB。由于他所有的计算都是在模二下进行的,所以 CC 也是一个 NNNN 列的矩阵,只包含 0011。对于每个 1i,jN1 ≤ i, j ≤ N,给定了 ci,jc_{i,j},矩阵 CC 的第 (i,j)(i,j) 个元素。

然而,Snuke 不小心把矩阵 AABB 吃掉了,现在他只知道矩阵 CC。计算可能的(有序)矩阵 AABB 的对数,对 109+710^9+7 取模。

约束条件

  • 1N3001 ≤ N ≤ 300
  • ci,jc_{i, j} 要么是 00,要么是 11

输入

输入以以下格式从标准输入给出:

NN

c1,1c_{1, 1} ...... c1,Nc_{1, N}

:

cN,1c_{N, 1} ...... cN,Nc_{N, N}

输出

打印两个矩阵 AABB 的可能的(有序)对数(对 109+710^9+7 取模)。

输入示例1

2
0 1
1 0

输出示例1

6

输入示例2

10
1 0 0 1 1 1 0 0 1 0
0 0 0 1 1 0 0 0 1 0
0 0 1 1 1 1 1 1 1 1
0 1 0 1 0 0 0 1 1 0
0 0 1 0 1 1 1 1 1 1
1 0 0 0 0 1 0 0 0 0
1 1 1 0 1 0 0 0 0 1
0 0 0 1 0 0 1 0 1 0
0 0 0 1 1 1 0 0 0 0
1 0 1 0 0 1 1 1 1 1

输出示例2

741992411