#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")