#include <bits/stdc++.h>
using namespace std;
const int MAXNM = 500111;
const int QQQ = 1000003;
char S[MAXNM];
int N, M;
int GetCode(int x, int y) { return x * M + y; }
bool hprov(int x, int o) {
  for (int j = 0; j < M; j++) {
    char c = S[GetCode(x, j)];
    if (o == 0 && (c == '3' || c == '4')) return false;
    if (o == 1 && (c == '1' || c == '2')) return false;
    o = 1 - o;
  }
  return true;
}
bool vprov(int y, int o) {
  for (int i = 0; i < N; i++) {
    char c = S[GetCode(i, y)];
    if (o == 0 && (c == '2' || c == '3')) return false;
    if (o == 1 && (c == '1' || c == '4')) return false;
    o = 1 - o;
  }
  return true;
}
int main() {
  cin >> N >> M;
  for (int i = 0; i < N; i++)
    for (int j = 0; j < M; j++) cin >> S[GetCode(i, j)];
  int K = 1;
  for (int i = 0; i < N; i++) {
    int z = 0;
    if (hprov(i, 0)) z++;
    if (hprov(i, 1)) z++;
    K *= z;
    K %= QQQ;
  }
  for (int j = 0; j < M; j++) {
    int z = 0;
    if (vprov(j, 0)) z++;
    if (vprov(j, 1)) z++;
    K *= z;
    K %= QQQ;
  }
  cout << K;
  return 0;
}
