#include <bits/stdc++.h>
using namespace std;
struct st {
  int x, y;
} a[105];
int n, k;
int cnum(int cnt, int m[5][55]) {
  int sum = 0;
  int r, c;
  while (cnt > 0) {
    for (int j = 1; j <= n; j++) {
      if (j < n && m[2][j + 1] == 0 && m[2][j] != 0) {
        r = 2, c = j;
        break;
      }
      if (j == n && m[3][j] == 0 && m[2][j] != 0) {
        r = 2, c = j;
        break;
      }
    }
    for (int j = n; j >= 1; j--) {
      if (j > 1 && m[3][j - 1] == 0 && m[3][j] != 0) {
        r = 3, c = j;
        break;
      }
      if (j == 1 && m[2][j] == 0 && m[3][j] != 0) {
        r = 3, c = j;
        break;
      }
    }
    for (int i = 1; i <= 2 * n; i++) {
      if (m[r][c] != 0) {
        int x = a[m[r][c]].x, y = a[m[r][c]].y;
        if ((abs(x - r) + abs(y - c)) == 1) {
          sum++;
          m[r][c] = 0;
          if (r == 2 && c > 1)
            c--;
          else if (r == 2 && c == 1)
            r = 3;
          else if (r == 3 && c < n)
            c++;
          else if (r == 3 && c == n)
            r = 2;
          cnt--;
          if (cnt == 0) break;
          continue;
        }
        if (r == 2 && c < n)
          y = c + 1, x = r;
        else if (r == 2 && c == n)
          x = 3, y = c;
        else if (r == 3 && c > 1)
          y = c - 1, x = r;
        else if (r == 3 && c == 1)
          x = 2, y = c;
        sum++;
        m[x][y] = m[r][c];
        m[r][c] = 0;
        if (r == 2 && c > 1)
          c--;
        else if (r == 2 && c == 1)
          r = 3;
        else if (r == 3 && c < n)
          c++;
        else if (r == 3 && c == n)
          r = 2;
      } else {
        if (r == 2 && c > 1)
          c--;
        else if (r == 2 && c == 1)
          r = 3;
        else if (r == 3 && c < n)
          c++;
        else if (r == 3 && c == n)
          r = 2;
      }
    }
  }
  return sum;
}
int main() {
  int m[5][55], t[5][55];
  int r, c;
  scanf("%d%d", &n, &k);
  for (int j = 1; j <= 4; j++)
    for (int i = 1; i <= n; i++) {
      scanf("%d", &m[j][i]);
      t[j][i] = m[j][i];
      if ((j == 1 || j == 4) && m[j][i] != 0)
        a[m[j][i]].x = j, a[m[j][i]].y = i;
    }
  if (k > 2 * n) {
    puts("-1");
    return 0;
  }
  int cnt = k;
  int sum = 0;
  int x1, y1, num1, f = 0;
  if (cnt == 2 * n) {
    for (int j = 2; j <= 3; j++) {
      for (int i = 1; i <= n; i++) {
        int r = j, c = i;
        int x = a[m[r][c]].x, y = a[m[r][c]].y;
        if ((abs(x - r) + abs(y - c)) == 1) {
          num1 = m[r][c], x1 = x, y1 = y;
          f = 1;
          m[r][c] = 0;
          t[r][c] = 0;
          cnt--;
          sum++;
          break;
        }
      }
      if (f) break;
    }
  }
  if (cnt >= 2 * n) {
    puts("-1");
    return 0;
  }
  sum += cnum(cnt, t);
  cout << sum << endl;
  if (f) printf("%d %d %d\n", num1, x1, y1);
  while (cnt > 0) {
    for (int j = 1; j <= n; j++) {
      if (j < n && m[2][j + 1] == 0 && m[2][j] != 0) {
        r = 2, c = j;
        break;
      }
      if (j == n && m[3][j] == 0 && m[2][j] != 0) {
        r = 2, c = j;
        break;
      }
    }
    for (int j = n; j >= 1; j--) {
      if (j > 1 && m[3][j - 1] == 0 && m[3][j] != 0) {
        r = 3, c = j;
        break;
      }
      if (j == 1 && m[2][j] == 0 && m[3][j] != 0) {
        r = 3, c = j;
        break;
      }
    }
    for (int i = 1; i <= 2 * n; i++) {
      if (m[r][c] != 0) {
        int x = a[m[r][c]].x, y = a[m[r][c]].y;
        if ((abs(x - r) + abs(y - c)) == 1) {
          printf("%d %d %d\n", m[r][c], x, y);
          m[r][c] = 0;
          if (r == 2 && c > 1)
            c--;
          else if (r == 2 && c == 1)
            r = 3;
          else if (r == 3 && c < n)
            c++;
          else if (r == 3 && c == n)
            r = 2;
          cnt--;
          if (cnt == 0) break;
          continue;
        }
        if (r == 2 && c < n)
          y = c + 1, x = r;
        else if (r == 2 && c == n)
          x = 3, y = c;
        else if (r == 3 && c > 1)
          y = c - 1, x = r;
        else if (r == 3 && c == 1)
          x = 2, y = c;
        printf("%d %d %d\n", m[r][c], x, y);
        m[x][y] = m[r][c];
        m[r][c] = 0;
        if (r == 2 && c > 1)
          c--;
        else if (r == 2 && c == 1)
          r = 3;
        else if (r == 3 && c < n)
          c++;
        else if (r == 3 && c == n)
          r = 2;
      } else {
        if (r == 2 && c > 1)
          c--;
        else if (r == 2 && c == 1)
          r = 3;
        else if (r == 3 && c < n)
          c++;
        else if (r == 3 && c == n)
          r = 2;
      }
    }
  }
}
