#include <bits/stdc++.h>
using namespace std;
const int MAXN = 55;
struct cube {
  int xt, yt;
  bool c;
};
struct mov {
  int x, y, xx, yy;
};
int n, m, xx[MAXN], yy[MAXN], K;
vector<int> vc[MAXN];
vector<mov> mv;
cube r[MAXN][MAXN];
void addv(int x, int y, int xt, int yt) {
  swap(r[x][y], r[xt][yt]);
  mov t;
  t.x = x + 1, t.xx = xt + 1, t.y = y + 1, t.yy = yt + 1;
  mv.push_back(t);
}
void mover(int x, int y) {
  while (y > 0) {
    addv(x, y, x, y - 1);
    y--;
  }
  while (x > 0) {
    addv(x, y, x - 1, y);
    x--;
  }
  while (y + 1 < n && !r[x][y + 1].c) {
    addv(x, y, x, y + 1);
    y++;
  }
}
int main() {
  cin >> n >> m;
  for (int i = 0; i < m; i++) {
    cin >> xx[i] >> yy[i];
    xx[i]--, yy[i]--;
  }
  for (int i = 0; i < m; i++) {
    int x, y;
    cin >> x >> y;
    x--, y--;
    vc[y].push_back(x);
    r[xx[i]][yy[i]].xt = x;
    r[xx[i]][yy[i]].yt = y;
    r[xx[i]][yy[i]].c = 1;
  }
  for (int i = 0; i < n; i++) sort(vc[i].begin(), vc[i].end());
  for (int i = n - 1; i >= 0; i--) {
    if (r[0][i].c) {
      int x = 0, y = i;
      while (y + 1 < n && !r[x][y + 1].c) {
        addv(x, y, x, y + 1);
        y++;
      }
    }
  }
  for (int i = 1; i < n; i++)
    for (int j = 0; j < n; j++)
      if (r[i][j].c) mover(i, j);
  for (int o = 0; o < n; o++)
    for (int i = 0; i < n; i++)
      if (!vc[i].empty()) {
        K++;
        int yt = i, xt = vc[i].back(), x, y;
        vc[i].pop_back();
        for (int i = 0; i < n; i++)
          if (r[0][i].c && r[0][i].xt == xt && r[0][i].yt == yt) x = 0, y = i;
        if (K != m) {
          addv(x, y, x + 1, y);
          x++;
        }
        while (y < yt) {
          addv(x, y, x, y + 1);
          y++;
        }
        while (y > yt) {
          addv(x, y, x, y - 1);
          y--;
        }
        while (x + 1 < n && !r[x + 1][y].c) {
          addv(x, y, x + 1, y);
          x++;
        }
      }
  for (int c = 0; c < n; c++) {
    for (int ro = 0; ro < n; ro++) {
      if (!r[ro][c].c) continue;
      int x = ro, y = c;
      while (r[x][y].xt < x) {
        addv(x, y, x - 1, y);
        x--;
      }
    }
  }
  cout << mv.size() << '\n';
  for (int i = 0; i < mv.size(); i++)
    cout << mv[i].x << ' ' << mv[i].y << ' ' << mv[i].xx << ' ' << mv[i].yy
         << '\n';
}
