#include<cstdio>

using namespace std;

int main(){
    int h, w;
    scanf("%d %d", &h, &w);

    int a[h][w];

    for(int i = 0; i < h; i++){
        for(int j = 0; j < w; j++){
            scanf("%d", &a[i][j]);
        }
    }
    int flag = false;
    int n = 0;
    for(int i = 0; i < h; i++){
        if (i % 2 == 0) {
            for(int j = 0; j < w - 1; j++){
                if (a[i][j] % 2 == 0 && flag) {
                    // printf("%d %d %d %d\n", i + 1, j + 1, i + 1, j + 2);
                    n++;
                }else if (a[i][j] % 2 == 1 && !flag) {
                    // printf("%d %d %d %d\n", i + 1, j + 1, i + 1, j + 2);
                    n++;
                    flag = true;
                }else if (a[i][j] % 2 == 1 && flag){
                    flag = false;
                }
            }

            if (i != h - 1) {
                if (a[i][w-1] % 2 == 0 && flag) {
                    // printf("%d %d %d %d\n", i + 1, w, i + 2, w);
                    n++;
                }else if (a[i][w-1] % 2 == 1 && !flag) {
                    // printf("%d %d %d %d\n", i + 1, w, i + 2, w);
                    n++;
                    flag = true;
                }else if (a[i][w-1] % 2 == 1 && flag){
                    flag = false;
                }                
            }
            

        }else{
            for(int j = w - 1; j > 0; j--){
                if (a[i][j] % 2 == 0 && flag) {
                    // printf("%d %d %d %d\n", i + 1, j + 1, i + 1, j);
                    n++;
                }else if (a[i][j] % 2 == 1 && !flag) {
                    // printf("%d %d %d %d\n", i + 1, j + 1, i + 1, j);
                    n++;
                    flag = true;
                }else if (a[i][j] % 2 == 1 && flag){
                    flag = false;
                }
            }
            if (i != h - 1) {
                if (a[i][0] % 2 == 0 && flag) {
                    // printf("%d %d %d %d\n", i + 1, 1, i + 2, 1);
                    n++;
                }else if (a[i][0] % 2 == 1 && !flag) {
                    // printf("%d %d %d %d\n", i + 1, 1, i + 2, 1);
                    n++;
                    flag = true;
                }else if (a[i][0] % 2 == 1 && flag){
                    flag = false;
                }  
            }        
        }
        
        
    }


    printf("%d\n", n);


    flag = false;
    n = 0;
    for(int i = 0; i < h; i++){
        if (i % 2 == 0) {
            for(int j = 0; j < w - 1; j++){
                if (a[i][j] % 2 == 0 && flag) {
                    printf("%d %d %d %d\n", i + 1, j + 1, i + 1, j + 2);
                    n++;
                }else if (a[i][j] % 2 == 1 && !flag) {
                    printf("%d %d %d %d\n", i + 1, j + 1, i + 1, j + 2);
                    n++;
                    flag = true;
                }else if (a[i][j] % 2 == 1 && flag){
                    flag = false;
                }
            }

            if (i != h - 1) {
                if (a[i][w-1] % 2 == 0 && flag) {
                    printf("%d %d %d %d\n", i + 1, w, i + 2, w);
                    n++;
                }else if (a[i][w-1] % 2 == 1 && !flag) {
                    printf("%d %d %d %d\n", i + 1, w, i + 2, w);
                    n++;
                    flag = true;
                }else if (a[i][w-1] % 2 == 1 && flag){
                    flag = false;
                }                
            }
            

        }else{
            for(int j = w - 1; j > 0; j--){
                if (a[i][j] % 2 == 0 && flag) {
                    printf("%d %d %d %d\n", i + 1, j + 1, i + 1, j);
                    n++;
                }else if (a[i][j] % 2 == 1 && !flag) {
                    printf("%d %d %d %d\n", i + 1, j + 1, i + 1, j);
                    n++;
                    flag = true;
                }else if (a[i][j] % 2 == 1 && flag){
                    flag = false;
                }
            }
            if (i != h - 1) {
                if (a[i][0] % 2 == 0 && flag) {
                    printf("%d %d %d %d\n", i + 1, 1, i + 2, 1);
                    n++;
                }else if (a[i][0] % 2 == 1 && !flag) {
                    printf("%d %d %d %d\n", i + 1, 1, i + 2, 1);
                    n++;
                    flag = true;
                }else if (a[i][0] % 2 == 1 && flag){
                    flag = false;
                }  
            }        
        }
        
        
    }
     
}

Measured memory_bytes: 2944