#include <bits/stdc++.h>
using namespace std;
int f[2][500005][2];
int main() {
  int n, m, i, j;
  char c;
  scanf("%d%d", &n, &m);
  for (i = 0; i < n; i++) {
    getchar();
    for (j = 0; j < m; j++) {
      scanf("%c", &c);
      switch (c) {
        case '.':
          break;
        case '1':
          f[0][i][1 ^ j % 2] = f[1][j][1 ^ i % 2] = 1;
          break;
        case '2':
          f[0][i][1 ^ j % 2] = f[1][j][0 ^ i % 2] = 1;
          break;
        case '3':
          f[0][i][0 ^ j % 2] = f[1][j][0 ^ i % 2] = 1;
          break;
        case '4':
          f[0][i][0 ^ j % 2] = f[1][j][1 ^ i % 2] = 1;
          break;
      }
    }
  }
  long long output = 1;
  for (i = 0; i < n; i++) {
    if (f[0][i][0] && f[0][i][1]) {
      puts("0");
      return 0;
    }
    output *= 2 - f[0][i][0] - f[0][i][1];
    output %= 1000003;
  }
  for (i = 0; i < m; i++) {
    if (f[1][i][0] && f[1][i][1]) {
      puts("0");
      return 0;
    }
    output *= 2 - f[1][i][0] - f[1][i][1];
    output %= 1000003;
  }
  printf("%I64d\n", output);
  return 0;
}
