#include<bits/stdc++.h>
#include<atcoder/modint>
using namespace std;
using mint=atcoder::modint998244353;
bitset<300>A[300];
int N,M,r;
int main(){
cin>>N>>M;
for(int i=0;i<N;i++)for(int j=0;j<M;j++){
int a;
cin>>a,A[i][j]=a;
}for(int j=0;j<M;j++){
int id=r;
while(id<N&&A[id][j]==0)id++;
if(id==N)continue;
if(id>r)swap(A[r],A[id]);
for(int i=r+1;i<N;i++)if(A[i][j]==1)A[i]^=A[r];
r++;
}cout<<((mint(4).pow(r)-mint(2).pow(r))/2*mint(2).pow(N+M-r-r)).val()<<endl;
}
AT_yahoo_procon2019_qual_e Odd Subrectangles
于 2023-08-21 16:17:54 首次发布