H, W = gets.split.map(&:to_i) G = Array.new(H) { Array.new(W, 0) } (H - 1).times do |y| (W - 1).times do |x| cnt = 0 cnt += 1 if G[y][x] == 0 cnt += 1 if G[y][x + 1] == 0 cnt += 1 if G[y + 1][x] == 0 cnt += 1 if G[y + 1][x + 1] == 0 if cnt > 2 G[y][x] ^= 1 G[y][x + 1] ^= 1 G[y + 1][x] ^= 1 G[y + 1][x + 1] ^= 1 end end end ans = G.map { |row| row.count(1) }.sum puts ans puts G.map { |row| row.join(' ') }