#define _USE_MATH_DEFINES #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; void flip(vector >& a, int y, int x) { int h = a.size(); int w = a[0].size(); for(int dy=-1; dy<=1; ++dy){ for(int dx=-1; dx<=1; ++dx){ int y2 = y + dy; int x2 = x + dx; if(0 <= y2 && y2 < h && 0 <= x2 && x2 < w) a[y2][x2] = !a[y2][x2]; } } } int main() { int h, w; cin >> h >> w; vector > a(h, vector(w)); for(int y=0; y> b; a[y][x] = (b == 1); } } int ans = INT_MAX; for(int i=0; i<(1<<(h+w-1)); ++i){ bitset<32> bs(i); vector > b = a; for(int y=0; y >(h, vector(w, false))) ans = min(ans, cnt); } if(ans < INT_MAX) cout << ans << endl; else cout << "Impossible" << endl; return 0; }