import java.util.*;
public class acceptableseatingarrangements_xiaowuc1 {
  public static void main(String[] args) throws Exception {
    Scanner sc = new Scanner(System.in);
    int r = sc.nextInt();
    int c = sc.nextInt();
    int[][] a = new int[r][c];
    for(int i = 0; i < r; i++) for(int j = 0; j < c; j++) a[i][j] = sc.nextInt();
    int[][] b = new int[r][c];
    for(int i = 0; i < r; i++) for(int j = 0; j < c; j++) b[i][j] = sc.nextInt();
    int[][] ans = new int[10000][4];
    int numswaps = 0;
    for(int val = 1; val <= r*c; val++) {
      int aloc = 0;
      while(a[aloc/c][aloc%c] != val) aloc++;
      int bloc = 0;
      while(b[bloc/c][bloc%c] != val) bloc++;
      int ar = aloc/c; int ac = aloc%c;
      int br = bloc/c; int bc = bloc%c;
      if(ar == br) {
        if(ac != bc) throw new RuntimeException();
        continue;
      }
      while(a[br][bc] != b[br][bc]) {
        for(int x = ac; true; x++) {
          a[ar][x] ^= a[br][bc];
          a[br][bc] ^= a[ar][x];
          a[ar][x] ^= a[br][bc];
          if(isSorted(a[ar]) && isSorted(a[br])) {
            ans[numswaps][0] = ar+1; ans[numswaps][1] = x+1;
            ans[numswaps][2] = br+1; ans[numswaps][3] = bc+1;
            numswaps++;
            break;
          }
          a[ar][x] ^= a[br][bc];
          a[br][bc] ^= a[ar][x];
          a[ar][x] ^= a[br][bc];
        }
      }
    }
    System.out.println(numswaps);
    for(int i = 0; i < numswaps; i++) {
      for(int j = 0; j < 4; j++) {
        if(j > 0) System.out.print(' ');
        System.out.print(ans[i][j]);
      }
      System.out.println();
    }
  }

  private static boolean isSorted(int[] v) {
    for(int i = 1; i < v.length; i++) if(v[i] < v[i-1]) return false;
    return true;
  }

}