#include <bits/stdc++.h>
using namespace std;
const int maxm = 50, maxk = 10800;
int n, m;
struct data {
  int x, y, ID;
} a[maxm + 5], b[maxm + 5];
int top[3];
pair<pair<int, int>, pair<int, int> > stk[3][maxk + 5];
inline bool Pcmp(const data &a, const data &b) {
  return a.x < b.x || a.x == b.x && a.y < b.y;
}
inline bool Icmp(const data &a, const data &b) { return a.ID < b.ID; }
inline void Move(data *a, int ID) {
  for (int i = 1; i <= m; i++)
    while (a[i].x > i)
      stk[ID][++top[ID]] =
          make_pair(make_pair(a[i].x, a[i].y), make_pair(a[i].x - 1, a[i].y)),
      a[i].x--;
  for (int i = m; i >= 1; i--)
    while (a[i].x < i)
      stk[ID][++top[ID]] =
          make_pair(make_pair(a[i].x, a[i].y), make_pair(a[i].x + 1, a[i].y)),
      a[i].x++;
  for (int i = 1; i <= m; i++)
    while (a[i].y > a[i].ID)
      stk[ID][++top[ID]] =
          make_pair(make_pair(a[i].x, a[i].y), make_pair(a[i].x, a[i].y - 1)),
      a[i].y--;
  for (int i = m; i >= 1; i--)
    while (a[i].y < a[i].ID)
      stk[ID][++top[ID]] =
          make_pair(make_pair(a[i].x, a[i].y), make_pair(a[i].x, a[i].y + 1)),
      a[i].y++;
}
int main() {
  scanf("%d%d", &n, &m);
  for (int i = 1; i <= m; i++) scanf("%d%d", &a[i].x, &a[i].y), a[i].ID = i;
  sort(a + 1, a + 1 + m, Pcmp);
  for (int i = 1; i <= m; i++) scanf("%d%d", &b[i].x, &b[i].y), b[i].ID = i;
  sort(b + 1, b + 1 + m, Pcmp);
  Move(a, 0);
  Move(b, 1);
  sort(a + 1, a + 1 + m, Icmp);
  sort(b + 1, b + 1 + m, Icmp);
  for (int i = 1; i <= m; i++) {
    while (a[i].x > b[i].x)
      stk[2][++top[2]] =
          make_pair(make_pair(a[i].x, a[i].y), make_pair(a[i].x - 1, a[i].y)),
      a[i].x--;
    while (a[i].x < b[i].x)
      stk[2][++top[2]] =
          make_pair(make_pair(a[i].x, a[i].y), make_pair(a[i].x + 1, a[i].y)),
      a[i].x++;
  }
  printf("%d\n", top[0] + top[1] + top[2]);
  for (int i = 1; i <= top[0]; i++)
    printf("%d %d %d %d\n", stk[0][i].first.first, stk[0][i].first.second,
           stk[0][i].second.first, stk[0][i].second.second);
  for (int i = 1; i <= top[2]; i++)
    printf("%d %d %d %d\n", stk[2][i].first.first, stk[2][i].first.second,
           stk[2][i].second.first, stk[2][i].second.second);
  for (int i = top[1]; i >= 1; i--)
    printf("%d %d %d %d\n", stk[1][i].second.first, stk[1][i].second.second,
           stk[1][i].first.first, stk[1][i].first.second);
  return 0;
}
