#P2877. 第3题-偶网格

第3题-偶网格

题目内容

有一个 nnmm 列的网格,我们使用 (i,j)(i,j) 表示网格中从上往下数第 ii 行和从左往右数第 jj 列的单元格。每个方格的值为 0011 ,且任何操作均不得超出网格边界。

我们定义单元格的权值为该单元格与其相邻且数值不同的单元格个数。网格的奇偶性为所有单元格权值之和的奇偶性。

TkTk 可以任意次进行如下操作:

  • 选择两个相邻的单元格交换它们的值.

Tk 想知道经过任意次操作后,能够得到多少种不同的网格为偶网格.

在这里,当xx+yy=1|x-x'|+|y-y'|=1 时,单元格 (x,y)(x,y)(x,y)(x,y) 被认为是相邻的.

我们认为若两个网格至少存在一个相同位置的单元格数值不同,则认为这两个网格不同.

由于答案可能很大,请将答案对 109+710^9+7 取模后输出.

输入描述

第一行输入两个整数 n,m(2n,m,n×m5×105)n,m (2 ≤n,m,n×m ≤5×10^5) ,表示网格的行数和列数.

接下来输入 nn 行,每行 mm 个整数 ai,j(ai,ja_i,j(a_i,j∈ {0,10,1})),表示初始时每个单元格的值.

输出描述

输出一个整数,表示不同偶矩阵的数量.

由于答案可能很大,请将答案对 109+710^9+7 取模后输出

样例1

输入

2 2
1 0
0 1

输出

6

说明

下面给出这 66 种不同偶矩阵的方案:

image