Under construction

Still being built. Things may change

Binary Matrix

Time limit2sMemory limit128 MB

Summary
Given a binary matrix, find and output the minimum sequence of flood-fill region flips that makes the whole matrix uniform.
Level

Medium7 of 10

Topics
Graph, BFS, Greedy
Solved
No attempts yet

Problem

You are given an n×m binary matrix. A binary matrix is a matrix whose cells contain only 0 or 1.

Define the operation Reverse(x, y) as follows. Let k be the value currently stored in cell (x, y). The operation finds the entire connected region of cells with value k that contains (x, y), using only up, down, left, and right adjacency, and changes every value in that region to 1-k. In other words, 0 becomes 1 and 1 becomes 0. Row and column numbers both start from 1.

Your goal is to use as few Reverse operations as possible so that every cell in the matrix has the same value, either all 0 or all 1.

Input

The first line contains two integers n and m. (1 ≤ n, m ≤ 100)

Each of the next n lines contains a length-m string made of 0s and 1s. The i-th of these lines represents the i-th row of the matrix.

Output

On the first line, print K, the minimum number of operations to call.

On each of the next K lines, print x and y for one operation, in order. A line means that Reverse(x, y) is called at that step.

Examples1

  1. Example 1

    Input
    9 9
    001111100
    010000010
    100101001
    100101001
    100000001
    101000101
    100111001
    010000010
    001111100
    
    Expected output
    2
    2 3
    3 1