#include #include #include #include #include #include using namespace std; #define PRINTF(args...) printf(args) //#define PRINTF(args...) #define FOR(i,a,b) for(int i=(a); i<(int)(b); ++i) #define FORD(i,a,b) for(int i=(a)-1; i>=(int)(b); --i) #define FOREACH(i,C) for(__typeof(C.begin()) i=C.begin(); i!=C.end(); ++i) const int nMax = 17; char tab[nMax][nMax]; char tabA[nMax][nMax]; int n,m; const int INF = 1000000000; void change(int x, int y) { FOR(i,-1,2) FOR(j,-1,2) if(abs(i)+abs(j)<2 && x+i=0 && y+j=0) tab[x+i][y+j] = 1-tab[x+i][y+j]; } bool testcase() { scanf("%d %d",&n,&m); if(n==0 && m==0) return false; FOR(i,0,n) scanf("%s",tabA[i]); int best = INF; FOR(mask,0,(1<