#include <bits/stdc++.h>
using namespace std;
char mp[501000];
int main() {
  int N, M;
  while (~scanf("%d%d", &N, &M)) {
    for (int i = 0; i < N; i++)
      for (int j = 0; j < M; j++) scanf(" %c", &mp[i * M + j]);
    bool flag = true;
    int S = N + M;
    for (int i = 0; i < N; i++) {
      int p = -1;
      for (int j = 0; j < M; j++) {
        char ch = mp[i * M + j];
        if (ch != '.') {
          if (p == -1) {
            S--;
            p = ((ch - '1') / 2 + (j % 2)) % 2;
          } else {
            if (((ch - '1') / 2 + (j % 2)) % 2 != p) {
              flag = false;
              break;
            }
          }
        }
      }
      if (!flag) break;
    }
    for (int i = 0; i < M; i++) {
      int p = -1;
      for (int j = 0; j < N; j++) {
        char ch = mp[j * M + i];
        if (ch != '.') {
          if (p == -1) {
            S--;
            p = (((ch - '0' + 2) % 4) / 2 + (j % 2)) % 2;
          } else {
            if ((((ch - '0' + 2) % 4) / 2 + (j % 2)) % 2 != p) {
              flag = false;
              break;
            }
          }
        }
      }
      if (!flag) break;
    }
    if (!flag)
      printf("0\n");
    else {
      int res = 1;
      for (int i = 0; i < S; i++) res = res * 2 % 1000003;
      printf("%d\n", res);
    }
  }
  return 0;
}
