#include <bits/stdc++.h>
using namespace std;
using pii = pair<int, int>;
using LL = long long;
struct yee {
  int idx, x, y;
  bool operator<(const yee& _) const { return x < _.x; }
};
int n, m;
vector<int> o;
vector<yee> a;
bool G[50][50];
void init() {
  a.clear();
  o.clear();
  for (int i = 0; i < n; i++)
    for (int j = 0; j < n; j++) G[i][j] = false;
  for (int i = 0; i < m; i++) {
    int x, y;
    cin >> x >> y;
    x--;
    y--;
    a.push_back({i, x, y});
    G[x][y] = true;
  }
  sort(begin(a), end(a));
}
void op(int x, int y) {
  o.push_back(x);
  o.push_back(y);
}
void movex() {
  for (bool fin = false; !fin;) {
    fin = true;
    for (int i = 0; i < m; i++) {
      if (i < a[i].x && !G[a[i].x - 1][a[i].y]) {
        G[a[i].x][a[i].y] = false;
        op(a[i].x, a[i].y);
        a[i].x--;
        G[a[i].x][a[i].y] = true;
        op(a[i].x, a[i].y);
        fin = false;
      } else if (i > a[i].x && !G[a[i].x + 1][a[i].y]) {
        G[a[i].x][a[i].y] = false;
        op(a[i].x, a[i].y);
        a[i].x++;
        G[a[i].x][a[i].y] = true;
        op(a[i].x, a[i].y);
        fin = false;
      }
    }
  }
}
void movey() {
  for (auto& x : a) {
    while (x.x != x.y) {
      if (x.x < x.y) {
        op(x.x, x.y);
        x.y--;
        op(x.x, x.y);
      } else if (x.x > x.y) {
        op(x.x, x.y);
        x.y++;
        op(x.x, x.y);
      }
    }
  }
}
void do_swap(int i, int j) {
  int nn = max(i - j, j - i);
  for (int k = 0; k < nn; k++) {
    op(i, i + k);
    op(i, i + k + 1);
    op(j, j - k);
    op(j, j - k - 1);
  }
  for (int k = 0; k < nn; k++) {
    op(i + k, j);
    op(i + k + 1, j);
    op(j - k, i);
    op(j - k - 1, i);
  }
}
void sswap() {
  for (int i = 0; i < m; i++) {
    int j = -1;
    for (int k = i; k < m; k++)
      if (a[k].idx == i) {
        j = k;
        break;
      }
    assert(j >= 0);
    if (j == i) continue;
    swap(a[j].idx, a[i].idx);
    do_swap(i, j);
  }
}
void solve() {
  movex();
  movey();
  sswap();
}
int main() {
  cin.tie(0);
  cin.sync_with_stdio(0);
  cin >> n >> m;
  init();
  solve();
  vector<int> ans = move(o);
  init();
  solve();
  for (int i = (int)o.size() - 4; i >= 0; i -= 4) {
    ans.push_back(o[i + 2]);
    ans.push_back(o[i + 3]);
    ans.push_back(o[i + 0]);
    ans.push_back(o[i + 1]);
  }
  cout << ans.size() / 4 << '\n';
  for (size_t i = 0; i < ans.size(); i += 4) {
    for (int j = 0; j < 4; j++) cout << ans[i + j] + 1 << ' ';
    cout << '\n';
  }
}
