#include <bits/stdc++.h>
using namespace std;
const int N = 55;
int cx[N], cy[N], tx[N], ty[N];
bool done[N];
struct Move {
  int cx, cy, nx, ny;
};
void AddMove(vector<Move> &moves, int &cx, int &cy, int i) {
  if (cx > cy) {
    while (cx < i) moves.push_back({cx, cy, cx + 1, cy}), cx++;
    while (cy < i) moves.push_back({cx, cy, cx, cy + 1}), cy++;
    while (cx > i) moves.push_back({cx, cy, cx - 1, cy}), cx--;
    while (cy > i) moves.push_back({cx, cy, cx, cy - 1}), cy--;
  } else {
    while (cy < i) moves.push_back({cx, cy, cx, cy + 1}), cy++;
    while (cx < i) moves.push_back({cx, cy, cx + 1, cy}), cx++;
    while (cy > i) moves.push_back({cx, cy, cx, cy - 1}), cy--;
    while (cx > i) moves.push_back({cx, cy, cx - 1, cy}), cx--;
  }
  assert(cx == i && cy == i);
}
int n, m;
vector<Move> formation(int *cx, int *cy) {
  memset(done, 0, sizeof done);
  vector<Move> front;
  for (int i = 1; i <= m; i++) {
    int mn = 2 * N, best = -1;
    for (int j = 1; j <= m; j++) {
      if (done[j]) continue;
      int cur = abs(cx[j] - i) + abs(cy[j] - i);
      if (mn > cur) {
        mn = cur;
        best = j;
      }
    }
    AddMove(front, cx[best], cy[best], i);
    done[best] = 1;
  }
  return front;
}
int p[N];
void AddSwapMove(int a, int b, vector<Move> &moves) {
  assert(cx[b] - cx[a] == 1);
  int i = cx[a];
  moves.push_back({i, i, i, i + 1});
  moves.push_back({i + 1, i + 1, i + 1, i});
  moves.push_back({i + 1, i, i, i});
  moves.push_back({i, i + 1, i + 1, i + 1});
  swap(p[cx[a]], p[cx[b]]);
  swap(cx[a], cx[b]);
  assert(moves.size() <= 1000000);
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cin >> n >> m;
  for (int i = 1; i <= m; i++) cin >> cx[i] >> cy[i];
  for (int i = 1; i <= m; i++) cin >> tx[i] >> ty[i];
  vector<Move> front = formation(cx, cy);
  vector<Move> back = formation(tx, ty);
  for (int i = 1; i <= m; i++) {
    assert(cx[i] == cy[i]);
    assert(tx[i] == ty[i]);
    p[cx[i]] = i;
  }
  vector<Move> middle;
  for (int i = 1; i <= m; i++) {
    int pos = -1;
    for (int j = 1; j <= m; j++)
      if (tx[j] == i) pos = j;
    while (cx[pos] > tx[pos]) {
      AddSwapMove(p[cx[pos] - 1], pos, middle);
    }
  }
  cout << front.size() + middle.size() + back.size() << endl;
  reverse(back.begin(), back.end());
  for (Move m : front)
    cout << m.cx << " " << m.cy << " " << m.nx << " " << m.ny << "\n";
  for (Move m : middle)
    cout << m.cx << " " << m.cy << " " << m.nx << " " << m.ny << "\n";
  for (Move m : back)
    cout << m.nx << " " << m.ny << " " << m.cx << " " << m.cy << "\n";
}
