#include <bits/stdc++.h>
using namespace std;
const int maxn = 1001;
bool ar[maxn][maxn];
int len[2], n;
struct node {
  int l;
  int r;
  node() {}
  node(int _l, int _r) : l(_l), r(_r) {}
} out[2][20001];
void vWork(int who) {
  int i, j, u, v, w;
  memset(ar, false, sizeof ar);
  for (i = 1; i <= n - 3; i++) {
    scanf("%d%d", &u, &v);
    ar[u][v] = ar[v][u] = true;
  }
  for (i = 1; i < n; i++) ar[i][i + 1] = ar[i + 1][i] = true;
  ar[n][1] = ar[1][n] = true;
  for (i = 3; i < n; i++) {
    while (!ar[1][i]) {
      for (j = i + 1; !ar[1][j]; j++)
        ;
      w = j;
      for (j = 1; !(ar[j][i - 1] && ar[j][w]); j++)
        ;
      u = j;
      for (j++; !(ar[j][i - 1] && ar[j][w]); j++)
        ;
      v = j;
      ar[i - 1][w] = ar[w][i - 1] = false;
      ar[u][v] = ar[v][u] = true;
      out[who][++len[who]] = (who ? node(u, v) : node(i - 1, w));
    }
  }
}
int main() {
  int i;
  scanf("%d", &n);
  vWork(0);
  vWork(1);
  printf("%d\n", len[0] + len[1]);
  for (i = 1; i <= len[0]; i++) printf("%d %d\n", out[0][i].l, out[0][i].r);
  for (i = len[1]; i >= 1; i--) printf("%d %d\n", out[1][i].l, out[1][i].r);
  return 0;
}
