#include <bits/stdc++.h>
using namespace std;
int n, m, tot, s, t, tp, ls, vl, ww;
bool v[100][100];
int x[100], y[100], X[100], Y[100], tt[100], pt[3];
int dl[100 * 100], dx[100 * 100], dy[100 * 100], fr[100 * 100];
int wx[15000], wy[15000], wX[15000], wY[15000];
void bfs(int i, int vs) {
  s = t = 1;
  dl[s] = 0;
  dx[s] = x[i];
  dy[s] = y[i];
  if ((dx[t] == vs) || ((!vs) && (dx[t] == X[i]) && (dy[t] == Y[i]))) return;
  for (; s <= t; s++) {
    if (!v[dx[s] + 1][dy[s]]) {
      t++;
      dx[t] = dx[s] + 1;
      dy[t] = dy[s];
      dl[t] = dl[s] + 1;
      v[dx[t]][dy[t]] = 1;
      fr[t] = s;
      if ((dx[t] == vs) || ((!vs) && (dx[t] == X[i]) && (dy[t] == Y[i]))) {
        for (int j = (2); j <= (t); j++) v[dx[j]][dy[j]] = 0;
        return;
      }
    }
    if (!v[dx[s] - 1][dy[s]]) {
      t++;
      dx[t] = dx[s] - 1;
      dy[t] = dy[s];
      dl[t] = dl[s] + 1;
      v[dx[t]][dy[t]] = 1;
      fr[t] = s;
      if ((dx[t] == vs) || ((!vs) && (dx[t] == X[i]) && (dy[t] == Y[i]))) {
        for (int j = (2); j <= (t); j++) v[dx[j]][dy[j]] = 0;
        return;
      }
    }
    if (!v[dx[s]][dy[s] + 1]) {
      t++;
      dx[t] = dx[s];
      dy[t] = dy[s] + 1;
      dl[t] = dl[s] + 1;
      v[dx[t]][dy[t]] = 1;
      fr[t] = s;
      if ((dx[t] == vs) || ((!vs) && (dx[t] == X[i]) && (dy[t] == Y[i]))) {
        for (int j = (2); j <= (t); j++) v[dx[j]][dy[j]] = 0;
        return;
      }
    }
    if (!v[dx[s]][dy[s] - 1]) {
      t++;
      dx[t] = dx[s];
      dy[t] = dy[s] - 1;
      dl[t] = dl[s] + 1;
      v[dx[t]][dy[t]] = 1;
      fr[t] = s;
      if ((dx[t] == vs) || ((!vs) && (dx[t] == X[i]) && (dy[t] == Y[i]))) {
        for (int j = (2); j <= (t); j++) v[dx[j]][dy[j]] = 0;
        return;
      }
    }
  }
  for (int j = (2); j <= (t); j++) v[dx[j]][dy[j]] = 0;
}
void wr(int i) {
  if (fr[i]) {
    wr(fr[i]);
    tot++;
    wx[tot] = dx[fr[i]];
    wy[tot] = dy[fr[i]];
    wX[tot] = dx[i];
    wY[tot] = dy[i];
  }
}
void wrs(int i) {
  v[x[i]][y[i]] = 0;
  x[i] = dx[t];
  y[i] = dy[t];
  v[x[i]][y[i]] = 1;
  wr(t);
}
int main() {
  scanf("%d%d", &n, &m);
  if (n == 1) {
    printf("0");
    return 0;
  }
  for (int i = (0); i <= (n + 1); i++)
    v[i][0] = v[i][n + 1] = v[0][i] = v[n + 1][i] = 1;
  for (int i = (1); i <= (m); i++) {
    scanf("%d%d", &x[i], &y[i]);
    v[x[i]][y[i]] = 1;
  }
  for (int i = (1); i <= (m); i++) {
    scanf("%d%d", &X[i], &Y[i]);
    tt[X[i]]++;
    tt[X[i] - 1]++;
  }
  tp = 1;
  for (int i = (2); i <= (n - 1); i++)
    if (tt[i] < tt[tp]) tp = i;
  for (int i = (1); i <= (m); i++) {
    ls = 0;
    vl = 1000000000;
    for (int j = (1); j <= (m); j++)
      if (x[j] != tp) {
        bfs(j, tp);
        if ((dx[t] == tp) && (dl[t] < vl)) vl = dl[t], ls = j;
      }
    if (!ls) break;
    bfs(ls, tp);
    wrs(ls);
  }
  for (int i = (1); i <= (m); i++) {
    ls = 0;
    vl = 0;
    for (int j = (1); j <= (m); j++)
      if ((X[j] != tp) && (X[j] != tp + 1) &&
          ((x[j] != X[j]) || (y[j] != Y[j]))) {
        bfs(j, 0);
        if ((dx[t] == X[j]) && (dy[t] == Y[j]) && (abs(X[j] - tp) > vl))
          vl = abs(X[j] - tp), ls = j;
      }
    if (!ls) break;
    bfs(ls, 0);
    wrs(ls);
  }
  for (int i = (1); i <= (m); i++)
    if (x[i] == tp) {
      bfs(i, tp + 1);
      wrs(i);
    }
  for (int i = (1); i <= (m); i++) {
    if ((X[i] == tp - 1) && (x[i] == tp + 1)) {
      bfs(i, 0);
      wrs(i);
    }
    if ((X[i] == tp) || (X[i] == tp + 1)) pt[++ww] = i;
  }
  if ((ww == 2) && (X[pt[1]] == x[pt[2]]) && (Y[pt[1]] == y[pt[2]])) {
    bfs(pt[2], tp);
    wrs(pt[2]);
  }
  for (int i = (1); i <= (ww); i++) {
    bfs(pt[i], 0);
    wrs(pt[i]);
  }
  printf("%d\n", tot);
  for (int i = (1); i <= (tot); i++)
    printf("%d %d %d %d\n", wx[i], wy[i], wX[i], wY[i]);
}
