#include <bits/stdc++.h>
#define FI first
#define SE second

using namespace std;

int b,k,mat[505][505],carry;
vector<pair<pair<int,int>,pair<int,int> > >ans;

int main(){
	scanf("%d%d",&b,&k);
	for(int i =0;i<b;i++){
		for(int j =0;j<k;j++){
			scanf("%d",&mat[i][j]);
			mat[i][j]%=2;
		}
	}
	for(int i=0;i<b;i++){
		if(i&1){
			for(int j =k-1;j>=0;j--){
				if(mat[i][j]==1) carry++;
				carry %= 2;
				
				if(carry){
					if(j==0 && i+1<b){
						ans.push_back({{i,j},{i+1,0}});
					} else if(j-1>=0){
						ans.push_back({{i,j},{i,j-1}});
					}
					
				}
				
			}
		} else {
			for(int j =0;j<k;j++){
				if(mat[i][j]==1) carry++;
				carry %= 2;
				
				if(carry){
					if(j==k-1 && i+1<b){
						ans.push_back({{i,j},{i+1,k-1}});
					} else if(j+1<k){
						ans.push_back({{i,j},{i,j+1}});
					}
					
				}
			}
		}
		
	}
	
	printf("%d\n",ans.size());
	for(int i =0;i<ans.size();i++){
		printf("%d %d %d %d\n",ans[i].FI.FI+1,ans[i].FI.SE+1,ans[i].SE.FI+1,ans[i].SE.SE+1);
	}
	return 0;
}