#include <bits/stdc++.h>
using namespace std;
struct __s {
  __s() {
    if (1) {
      ios_base::Init i;
      cin.sync_with_stdio(0);
      cin.tie(0);
    }
  }
  ~__s() {
    if (!1)
      fprintf(stderr, "Execution time: %.3lf s.\n",
              (double)clock() / CLOCKS_PER_SEC);
    long long n;
    cin >> n;
  }
} __S;
long long n, m;
long long x[55];
long long y[55];
long long first[55];
long long second[55];
long long I[55][55];
long long J[55][55];
bool u[55][55];
bool up[55];
bool ud[55];
bool ok[55];
vector<pair<pair<long long, long long>, pair<long long, long long> > > ans;
long long findUp() {
  long long idx = -1;
  for (long long i = 0; i < (long long)(m); i++) {
    if (up[i]) continue;
    if (idx == -1 || x[i] < x[idx] || (x[i] == x[idx] && y[i] < y[idx])) {
      idx = i;
    }
  }
  return idx;
}
long long findDown() {
  long long idx = -1;
  for (long long i = 0; i < (long long)(m); i++) {
    if (ud[i]) continue;
    if (idx == -1 || first[i] > first[idx] ||
        (first[i] == first[idx] && second[i] < second[idx])) {
      idx = i;
    }
  }
  return idx;
}
void move(long long i, long long dx, long long dy) {
  u[x[i]][y[i]] = false;
  I[x[i]][y[i]] = -1;
  ans.push_back(
      make_pair(make_pair(x[i], y[i]), make_pair(x[i] + dx, y[i] + dy)));
  x[i] += dx;
  y[i] += dy;
  u[x[i]][y[i]] = true;
  I[x[i]][y[i]] = i;
}
void shift(long long i, long long dx, long long dy) {
  long long first = x[i] + dx;
  long long second = y[i] + dy;
  if (u[first][second]) shift(I[first][second], dx, dy);
  move(i, dx, dy);
}
int main(void) {
  cin >> n >> m;
  for (long long i = 0; i < (long long)(n); i++)
    for (long long j = 0; j < (long long)(n); j++) J[i][j] = -1;
  for (long long i = 0; i < (long long)(m); i++) {
    cin >> x[i] >> y[i];
    x[i]--;
    y[i]--;
    u[x[i]][y[i]] = true;
    I[x[i]][y[i]] = i;
  }
  for (long long i = 0; i < (long long)(m); i++) {
    cin >> first[i] >> second[i];
    first[i]--;
    second[i]--;
    J[first[i]][second[i]] = i;
  }
  for (long long i = 0; i < (long long)(m); i++) {
    long long idx = findUp();
    while (x[idx] != 0 || y[idx] != i) {
      while (x[idx] != 0 && !u[x[idx] - 1][y[idx]]) {
        move(idx, -1, 0);
      }
      while (y[idx] != i) {
        while (y[idx] > i && !u[x[idx]][y[idx] - 1]) {
          move(idx, 0, -1);
        }
        while (y[idx] < i && !u[x[idx]][y[idx] + 1]) {
          move(idx, 0, 1);
        }
        if (y[idx] != i) {
          idx = I[x[idx]][y[idx] + 1];
        }
      }
      while (x[idx] != 0 && !u[x[idx] - 1][y[idx]]) {
        move(idx, -1, 0);
      }
    }
    up[idx] = true;
  }
  for (long long i = 0; i < (long long)(m); i++) {
    long long idx = findDown();
    ud[idx] = true;
    if (first[idx] < 2) continue;
    while (x[idx] != first[idx] || y[idx] != second[idx]) {
      while (x[idx] != first[idx] - 1) {
        move(idx, 1, 0);
      }
      while (y[idx] > second[idx]) {
        move(idx, 0, -1);
      }
      while (y[idx] < second[idx]) {
        move(idx, 0, 1);
      }
      move(idx, 1, 0);
    }
    ok[idx] = true;
  }
  vector<long long> w[2];
  for (long long i = 0; i < (long long)(min(n, 2LL)); i++) {
    for (long long j = 0; j < (long long)(n); j++) {
      if (J[i][j] == -1) continue;
      w[i].push_back(J[i][j]);
    }
  }
  for (long long i = 0; i < (long long)(2); i++) {
    for (long long j = 1; j < w[i].size(); ++j) {
      if (y[w[i][j - 1]] < y[w[i][j]]) continue;
      move(w[i][j], 1, 0);
      while (y[w[i][j]] < y[w[i][j - 1]]) move(w[i][j], 0, 1);
      shift(w[i][j - 1], 0, -1);
      move(w[i][j], -1, 0);
    }
  }
  for (long long i = 0; i < (long long)(w[1].size()); i++) {
    move(w[1][i], 1, 0);
  }
  for (long long i = 0; i < (long long)(2); i++) {
    for (long long jj = 0; jj < (long long)(w[i].size()); jj++) {
      long long j = w[i].size() - 1 - jj;
      while (y[w[i][j]] != n - 1 - jj) move(w[i][j], 0, 1);
    }
    for (long long j = 0; j < (long long)(w[i].size()); j++) {
      while (y[w[i][j]] != second[w[i][j]]) move(w[i][j], 0, -1);
    }
  }
  cout << ans.size() << '\n';
  for (long long i = 0; i < (long long)(ans.size()); i++) {
    cout << ans[i].first.first + 1 << " " << ans[i].first.second + 1 << " "
         << ans[i].second.first + 1 << " " << ans[i].second.second + 1 << '\n';
  }
  return 0;
}
