#include <bits/stdc++.h>
using namespace std;
struct op {
  int a, b, c, d;
};
vector<op> ans, act;
int mat[100][100];
pair<int, int> from[100][100];
bool viz[100][100];
vector<int> perm;
int n, m;
bool can(int x, int y, int x0, int y0) {
  vector<op> ops;
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= n; j++) viz[i][j] = 1, from[i][j] = {0, 0};
  queue<pair<int, int>> q;
  q.push({x, y});
  while (!q.empty()) {
    int x = q.front().first, y = q.front().second;
    q.pop();
    if (x == x0 && y == y0) {
      while (from[x][y] != (pair<int, int>{0, 0})) {
        ops.push_back({x + from[x][y].first, y + from[x][y].second, x, y});
        auto dec = from[x][y];
        x += dec.first, y += dec.second;
      }
      mat[x][y] = 0;
      mat[x0][y0] = 1;
      reverse(ops.begin(), ops.end());
      assert(ops.size() <= 200);
      move(ops.begin(), ops.end(), back_inserter(act));
      return true;
    }
    for (int i = -1; i <= 1; i++) {
      for (int j = -1; j <= 1; j++) {
        if (i != 0 && j != 0) continue;
        if (!mat[x + i][y + j] && viz[x + i][y + j]) {
          viz[x + i][y + j] = 0;
          q.push({x + i, y + j});
          from[x + i][y + j] = {-i, -j};
        }
      }
    }
  }
  return false;
}
void proc(vector<pair<int, int>> v) {
  memset(mat, 0, sizeof mat);
  for (auto i : v) mat[i.first][i.second] = 1;
  vector<int> w(m);
  vector<int> moved(m);
  vector<int> poz_final(m);
  int cnt = 0;
  while (cnt != m) {
    bool made = 0;
    for (int i = 0; i < m; i++) {
      if (poz_final[i]) continue;
      if (can(v[i].first, v[i].second, i + 1, 1)) {
        cnt++, made = 1;
        poz_final[i] = 1;
      }
    }
    if (!made) {
      random_shuffle(perm.begin(), perm.end());
      for (auto i : perm) {
        if (made) break;
        if (!poz_final[i] && v[i].second != n) {
          for (int p = 1; p <= n; p++) {
            if (can(v[i].first, v[i].second, p, n)) {
              made = 1;
              v[i].first = p, v[i].second = n;
            }
          }
        }
      }
    }
  }
}
int main() {
  vector<pair<int, int>> init, fnsh;
  cin >> n >> m;
  init.resize(m), fnsh.resize(m);
  perm.resize(m);
  for (int i = 0; i < m; i++) perm[i] = i;
  for (auto& i : init) cin >> i.first >> i.second;
  for (auto& i : fnsh) cin >> i.first >> i.second;
  proc(init);
  ans = act;
  act.clear();
  proc(fnsh);
  reverse(act.begin(), act.end());
  cout << ans.size() + act.size() << '\n';
  for (auto i : ans)
    cout << i.a << ' ' << i.b << ' ' << i.c << ' ' << i.d << '\n';
  for (auto i : act)
    cout << i.c << ' ' << i.d << ' ' << i.a << ' ' << i.b << '\n';
  return 0;
}
