#include <bits/stdc++.h>
using namespace std;
struct mov {
  int x1, y1, x2, y2;
  mov(int x1, int y1, int x2, int y2) : x1(x1), y1(y1), x2(x2), y2(y2) {}
};
int M, N;
bool vis[55][55];
pair<pair<int, int>, int> A[2][55];
vector<mov> ans[2];
void add(int k, int x1, int y1, int x2, int y2) {
  vis[x1][y1] = false;
  vis[x2][y2] = true;
  if (x1 == x2) {
    if (y1 < y2) {
      for (int i = y1; i < y2; i++) ans[k].push_back(mov(x1, i, x1, i + 1));
    } else {
      for (int i = y1; i > y2; i--) ans[k].push_back(mov(x1, i, x1, i - 1));
    }
  } else {
    if (x1 < x2) {
      for (int i = x1; i < x2; i++) ans[k].push_back(mov(i, y1, i + 1, y1));
    } else {
      for (int i = x1; i > x2; i--) ans[k].push_back(mov(i, y1, i - 1, y1));
    }
  }
}
bool check(int x1, int y, int x2) {
  if (x1 < x2) {
    for (int i = x1 + 1; i <= x2; i++)
      if (vis[i][y]) return false;
  } else {
    for (int i = x1 - 1; i >= x2; i--)
      if (vis[i][y]) return false;
  }
  return true;
}
void go(int k) {
  sort(A[k], A[k] + M);
  memset(vis, 0, sizeof(vis));
  for (int i = 0; i < M; i++)
    vis[A[k][i].first.first][A[k][i].first.second] = true;
  for (int i = 0; i < M; i++)
    for (int j = 0; j < M; j++)
      if (!vis[j + 1][A[k][j].first.second] &&
          check(A[k][j].first.first, A[k][j].first.second, j + 1)) {
        add(k, A[k][j].first.first, A[k][j].first.second, j + 1,
            A[k][j].first.second);
        break;
      }
  for (int i = 0; i < M; i++)
    add(k, i + 1, A[k][i].first.second, i + 1, A[k][i].second);
  for (int i = 0; i < M; i++)
    add(k, i + 1, A[k][i].second, A[k][i].second, A[k][i].second);
}
int main() {
  ios::sync_with_stdio(0);
  cin >> N >> M;
  for (int i = 0; i < 2; i++)
    for (int j = 0, x, y; j < M; j++) {
      cin >> A[i][j].first.first >> A[i][j].first.second;
      A[i][j].second = j + 1;
    }
  go(0);
  go(1);
  cout << ans[0].size() + ans[1].size() << "\n";
  for (int i = 0; i < (int)ans[0].size(); i++)
    cout << ans[0][i].x1 << " " << ans[0][i].y1 << " " << ans[0][i].x2 << " "
         << ans[0][i].y2 << "\n";
  for (int i = (int)ans[1].size() - 1; i >= 0; i--)
    cout << ans[1][i].x2 << " " << ans[1][i].y2 << " " << ans[1][i].x1 << " "
         << ans[1][i].y1 << "\n";
  return 0;
}
