int N,M; long S[2] = {0}; char e[1003] = {0}; #define X(x) ((x)&0x1) #define COLOR(x) ((x)&0x10) main(){ scanf("%d%d",&N,&M); for (int n = 0; n < N; n++) { char ul = 0; char l = 0; getchar(); for (int m = 0; m < M; m++) { char c = getchar() != '.'; char u = e[m+1]; char ur = e[m+2]; if (!X(c)) if (!X(u)) c = u; else if (!X(l)) c = l; else if (!X(ul)) c = ul ^ 0x10; else c = COLOR(l); else if (!X(u) && !X(l) && !X(ul) && !X(ur)) c = COLOR(l) | c; else if (X(u)) c = u; else if (X(l)) c = l; else if (X(ul)) c = ul; else c = ur; S[!!COLOR(c)] += X(c); e[m+1] = c; l = c; ul = u; } } printf("%ld\n", S[0]>=S[1]?S[0]:S[1]); }