#include <bits/stdc++.h>
using namespace std;
const int N = 55;
int dx[4] = {-1, 0, 0, 1};
int dy[4] = {0, -1, 1, 0};
int n, m;
struct mov {
  int a, b, x, y;
  mov(){};
  mov(int C, int c, int d, int v) { a = C, b = c, x = d, y = v; }
};
class game {
 public:
  int hav[N][N];
  vector<mov> ans;
  void read() {
    for (int i = 1; i <= m; i++) {
      int x, y;
      scanf("%d%d", &x, &y);
      hav[x][y] = i;
    }
  }
  void go(int x, int y, int d) {
    int nx = x + dx[d], ny = y + dy[d];
    ans.push_back(mov(x, y, nx, ny));
    hav[nx][ny] = hav[x][y];
    hav[x][y] = 0;
  }
  void fsyl(int x, int y) {
    if (y + 1 <= n && hav[x][y + 1]) fsyl(x, y + 1);
    go(x, y, 2);
  }
  void play() {
    int now = 0;
    for (int i = 1; i <= n; i++)
      for (int j = 1; j <= n; j++) {
        if (hav[i][j]) {
          now++;
          int x = i, y = j;
          while (y > now) go(x, y--, 1);
          while (y < now) fsyl(x, y++);
          for (int k = x; k > 1; k--) go(k, y, 0);
        }
      }
  }
  void print(bool r) {
    int len = ans.size();
    if (r)
      for (int i = 0; i < len; i++)
        printf("%d %d %d %d\n", ans[i].a, ans[i].b, ans[i].x, ans[i].y);
    else
      for (int i = len - 1; i >= 0; i--)
        printf("%d %d %d %d\n", ans[i].x, ans[i].y, ans[i].a, ans[i].b);
  }
} sta, ed;
int main() {
  scanf("%d%d", &n, &m);
  sta.read();
  ed.read();
  sta.play();
  ed.play();
  int cur = 1;
  if (n == 2 && sta.hav[1][1] != ed.hav[1][1]) {
    sta.go(1, 1, 3);
    sta.go(2, 1, 2);
    sta.go(1, 2, 1);
    sta.go(2, 2, 0);
  } else if (n >= 3) {
    for (int i = 1; i <= m; i++) {
      int j = 1, x = i;
      while (ed.hav[1][j] != sta.hav[1][i]) j++;
      sta.go(1, i, 3);
      while (x < j) sta.go(2, x++, 2);
      while (x > j) sta.go(2, x--, 1);
      sta.go(2, x, 3);
    }
    for (int i = 1; i <= m; i++) sta.go(3, i, 0), sta.go(2, i, 0);
  }
  printf("%d\n", sta.ans.size() + ed.ans.size());
  sta.print(1);
  ed.print(0);
  return 0;
}
