#include <bits/stdc++.h>
using namespace std;
template <class T>
T abs(T x) {
  return x > 0 ? x : -x;
}
template <class T>
T gcd(T a, T b) {
  return a ? gcd(b % a, a) : b;
}
template <class T>
T sqr(T a) {
  return a * a;
}
template <class T>
T sgn(T a) {
  return a > 0 ? 1 : (a < 0 ? -1 : 0);
}
int n;
int m;
int a[50][50];
int main() {
  scanf("%d%d", &n, &m);
  for (int i = 0; i < n; i++)
    for (int j = 0; j < m; j++) scanf("%d", &a[i][j]);
  long long ans = 0;
  for (int i = 0; i < n; i++) {
    long long s = 0;
    for (int j = 0; j < m; j++) s += a[i][j];
    ans += (1ll << s) + (1ll << (m - s)) - 1 - 1;
  }
  for (int i = 0; i < m; i++) {
    long long s = 0;
    for (int j = 0; j < n; j++) s += a[j][i];
    ans += (1ll << s) + (1ll << (n - s)) - 1 - 1;
  }
  cout << ans - m * n << endl;
  return 0;
}
