def flip(b, x, y): for i in range(-1, 2): for j in range(-1, 2): if 0<=x-i>k)&1: ans_cand += 1 b = flip(b, 0, k) for k in range(M): if (j>>k)&1: ans_cand += 1 b = flip(b, k, 0) for k in range(1, M): for l in range(1, N): if b[k-1][l-1]==1: ans_cand += 1 b = flip(b, k, l) for k in range(M): for l in range(N): if b[k][l]==1: break else: continue break else: ans = min(ans, ans_cand) if ans==10**18: print('Impossible') else: print(ans)