#include <bits/stdc++.h>
using namespace std;
const int len = 55;
int arr[len][len], n, m;
pair<int, int> pos[len], tar[len];
vector<pair<pair<int, int>, pair<int, int> > > out;
void print() {
  for (int i = 1; i <= n; i++) printf("-");
  printf("\n");
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= n; j++) printf("%d", arr[i][j]);
    printf("\n");
  }
}
void mov(int x1, int y1, int x2, int y2) {
  while (x1 != x2) {
    if (x2 < x1) {
      out.push_back(make_pair(make_pair(x1, y1), make_pair(x1 - 1, y1)));
      arr[x1 - 1][y1] = arr[x1][y1];
      arr[x1][y1] = 0;
      x1--;
    } else {
      out.push_back(make_pair(make_pair(x1, y1), make_pair(x1 + 1, y1)));
      arr[x1 + 1][y1] = arr[x1][y1];
      arr[x1][y1] = 0;
      x1++;
    }
  }
  while (y1 != y2) {
    if (y2 < y1) {
      out.push_back(make_pair(make_pair(x1, y1), make_pair(x1, y1 - 1)));
      arr[x1][y1 - 1] = arr[x1][y1];
      arr[x1][y1] = 0;
      y1--;
    } else if (y2 > y1) {
      out.push_back(make_pair(make_pair(x1, y1), make_pair(x1, y1 + 1)));
      arr[x1][y1 + 1] = arr[x1][y1];
      arr[x1][y1] = 0;
      y1++;
    }
  }
  pos[arr[x1][y1]] = make_pair(x1, y1);
}
int main() {
  scanf("%d %d", &n, &m);
  for (int i = 1; i <= m; i++) {
    scanf("%d %d", &pos[i].first, &pos[i].second);
    arr[pos[i].first][pos[i].second] = i;
  }
  for (int i = 1; i <= m; i++) scanf("%d %d", &tar[i].first, &tar[i].second);
  if (n == 1) {
    printf("0\n");
    return 0;
  }
  int po = 1;
  for (int i = 1; i <= n; i++) {
    int cur = 1;
    for (int j = 1; j <= n; j++)
      if (arr[i][j]) mov(i, j, i, cur++);
    for (int j = n; j >= 1; j--)
      if (arr[i][j]) mov(i, j, i, j + po - 1);
    for (int j = 1; j <= n; j++)
      if (arr[i][j]) mov(i, j, 1, j), po++;
  }
  for (int i = n; i >= 3; i--) {
    for (int j = 1; j <= n; j++)
      if (arr[1][j] && tar[arr[1][j]].first == i) {
        pair<int, int> cur = tar[arr[1][j]];
        mov(1, j, 2, j);
        mov(2, j, 2, cur.second);
        mov(2, cur.second, cur.first, cur.second);
      }
  }
  for (int i = 1; i <= n; i++)
    for (int j = 1; j < n; j++) {
      if (arr[1][j] == 0 && arr[1][j + 1] == 0)
        continue;
      else if (arr[1][j] == 0)
        mov(1, j + 1, 1, j);
      else if (arr[1][j + 1] == 0)
        mov(1, j, 1, j + 1);
      else if (tar[arr[1][j]].second > tar[arr[1][j + 1]].second) {
        mov(1, j, 2, j);
        mov(2, j, 2, j + 1);
        mov(1, j + 1, 1, j);
        mov(2, j + 1, 1, j + 1);
      }
    }
  for (int j = 1; j <= n; j++)
    if (arr[1][j] && tar[arr[1][j]].first == 2) mov(1, j, 2, j);
  for (int i = 1; i <= 2; i++) {
    int cur = 1;
    for (int j = 1; j <= n; j++)
      if (arr[i][j]) mov(i, j, i, cur++);
    for (int j = n; j >= 1; j--)
      if (arr[i][j]) mov(i, j, tar[arr[i][j]].first, tar[arr[i][j]].second);
  }
  printf("%d\n", out.size());
  for (int i = 0; i < out.size(); i++)
    printf("%d %d %d %d\n", out[i].first.first, out[i].first.second,
           out[i].second.first, out[i].second.second);
  return 0;
}
