#include <bits/stdc++.h>
using namespace std;
using ll=long long;
const int mod=1000000007;
ll fastpower(ll a,ll b){
ll res=1;
a%=mod;
while(b){
if(b&1)
res=(res*a)%mod;
a=(a*a)%mod;
b>>=1;
}
return res;
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int n,m;
cin>>n>>m;
vector<vector<ll>> vec(n,vector<ll>(m));
vector<pair<ll,ll>> rows(n,{0,0}),cols(m,{0,0});
for(int i=0;i<n;i++)
for(int j=0;j<m;j++){
cin>>vec[i][j];
if(vec[i][j]==0){
rows[i].first++;
cols[j].first++;
}
else{
rows[i].second++;
cols[j].second++;
}
}
ll num=0;
for(int i=0;i<n;i++){
num=(num+fastpower(2,rows[i].first)-1)%mod;
num=(num+fastpower(2,rows[i].second)-1)%mod;
}
for(int i=0;i<m;i++){
num=(num+fastpower(2,cols[i].first)-1)%mod;
num=(num+fastpower(2,cols[i].second)-1)%mod;
}
cout<<(num-(m*n)%mod+mod)%mod;
}
// 64 位输出请用 printf("%lld")