#include <bits/stdc++.h>
using namespace std;
struct Cube {
  int x, y, dest;
};
struct Move {
  int x0, y0, x1, y1;
  void print() { printf("%d %d %d %d\n", x0, y0, x1, y1); }
  void print_reverse() { printf("%d %d %d %d\n", x1, y1, x0, y0); }
};
int N, C;
int b[53][53];
bool sorter(const Cube& first, const Cube& second) {
  return first.x < second.x;
}
void basic(vector<Cube>& cubes, vector<Move>& moves) {
  memset(b, 0, sizeof(b[0][0]) * 53 * 53);
  sort(cubes.begin(), cubes.end(), sorter);
  for (int i = 0; i < N; ++i) b[cubes[i].x][cubes[i].y] = 1;
  while (1) {
    bool done = true;
    for (int i = 0; i < N; ++i) {
      int dest = i + 1;
      if (cubes[i].x != dest) {
        done = false;
        int dx = dest - cubes[i].x;
        dx = dx > 0 ? 1 : -1;
        if (b[cubes[i].x + dx][cubes[i].y]) continue;
        moves.push_back(
            Move{cubes[i].x, cubes[i].y, cubes[i].x + dx, cubes[i].y});
        b[cubes[i].x][cubes[i].y] = 0;
        cubes[i].x += dx;
        b[cubes[i].x][cubes[i].y] = 1;
      }
    }
    if (done) break;
  }
  for (int i = 0; i < N; ++i) {
    while (cubes[i].y != cubes[i].dest) {
      int dy = cubes[i].dest - cubes[i].y;
      if (dy > 0)
        dy = 1;
      else
        dy = -1;
      moves.push_back(
          Move{cubes[i].x, cubes[i].y, cubes[i].x, cubes[i].y + dy});
      cubes[i].y += dy;
    }
  }
  for (int i = 0; i < N; ++i) {
    while (cubes[i].x != cubes[i].dest) {
      int dx = cubes[i].dest - cubes[i].x;
      if (dx > 0)
        dx = 1;
      else
        dx = -1;
      moves.push_back(
          Move{cubes[i].x, cubes[i].y, cubes[i].x + dx, cubes[i].y});
      cubes[i].x += dx;
    }
  }
}
vector<Cube> cubes1, cubes2;
void solve() {
  vector<Move> moves1, moves2;
  basic(cubes1, moves1);
  basic(cubes2, moves2);
  int nstep = moves1.size() + moves2.size();
  printf("%d\n", nstep);
  for (int i = 0; i < moves1.size(); ++i) {
    moves1[i].print();
  }
  for (int i = moves2.size() - 1; i >= 0; --i) {
    moves2[i].print_reverse();
  }
}
int main() {
  scanf("%d%d", &C, &N);
  for (int i = 0; i < N; ++i) {
    int x, y;
    scanf("%d%d", &x, &y);
    cubes1.push_back(Cube{x, y, i + 1});
  }
  for (int i = 0; i < N; ++i) {
    int x, y;
    scanf("%d%d", &x, &y);
    cubes2.push_back(Cube{x, y, i + 1});
  }
  solve();
}
