#include <bits/stdc++.h>
using namespace std;
void omar_medhat() { ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0); }
bool hu(int h, int u, int p) { return h >= u && h <= p; }
template <typename T>
string to_str(T num) {
  stringstream stream;
  stream << num;
  return stream.str();
}
int to_int(string str) {
  int val;
  stringstream stream;
  stream << str;
  stream >> val;
  return val;
}
const double pi = 3.1415926535897;
long long p(long long a, long long b) {
  long long y = 1, t = a;
  for (; b; b >>= 1, t *= t)
    if (b & 1) y *= t;
  return y;
}
int k;
string s;
set<char> se;
long long n, m, a[51][51], sum, o, z;
int main() {
  cin >> n >> m;
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) {
      cin >> a[i][j];
    }
  }
  for (int i = 0; i < n; i++) {
    long long c0 = 0, c1 = 0;
    for (int j = 0; j < m; j++) {
      if (a[i][j])
        c1++;
      else
        c0++;
    }
    sum += (p(2, c0) + p(2, c1) - 2);
  }
  for (int i = 0; i < m; i++) {
    long long c0 = 0, c1 = 0;
    for (int j = 0; j < n; j++) {
      if (a[j][i])
        c1++;
      else
        c0++;
    }
    sum += p(2, c0) + p(2, c1) - 2 - c0 - c1;
  }
  cout << sum;
  return 0;
}
