#include <bits/stdc++.h>
static inline unsigned long long rdtsc() {
  unsigned long long d;
  __asm__ __volatile__("rdtsc" : "=A"(d));
  return d;
}
using namespace std;
const int inf = (int)1e9;
const double eps = 1e-9;
const int maxn = 1010;
const int maxm = (int)1e5 + 10;
int a[maxn][maxn];
pair<int, int> b[maxn];
int n;
pair<int, int> RES[maxm];
int RESc = 0;
void make(int x, int y) {
  if (rand() & 1) swap(x, y);
  while (1) {
    if (a[x][y] == 1) return;
    int l = y;
    while (a[x][l] == 0) {
      l -= 1;
      if (l == -1) l = n - 1;
    }
    int r = y;
    while (a[x][r] == 0) {
      r += 1;
      if (r == n) r = 0;
    }
    RES[RESc++] = make_pair(l, r);
    assert(a[l][r] == 1);
    a[l][r] = 0;
    a[r][l] = 0;
    int first = -1;
    for (int i = l + 1; i != r; i = i < n - 1 ? i + 1 : 0) {
      if (a[i][l] && a[i][r]) {
        first = i;
        break;
      }
    }
    assert(first != -1);
    a[x][first] = 1;
    a[first][x] = 1;
  }
}
int main() {
  scanf("%d", &n);
  for (int i = 0; (i) < (n - 3); ++i) {
    int x, y;
    scanf("%d%d", &x, &y);
    x -= 1, y -= 1;
    a[x][y] = 1;
    a[y][x] = 1;
  }
  for (int i = 0; (i) < (n - 1); ++i) a[i][i + 1] = a[i + 1][i] = 1;
  a[0][n - 1] = a[n - 1][0] = 1;
  for (int i = 0; (i) < (n - 3); ++i) {
    int x, y;
    scanf("%d%d", &x, &y);
    x -= 1, y -= 1;
    b[i] = make_pair(x, y);
  }
  random_shuffle(b, b + (n - 3));
  for (int i = 0; (i) < (n - 3); ++i) make(b[i].first, b[i].second);
  printf("%d\n", RESc);
  for (int i = 0; (i) < (RESc); ++i)
    printf("%d %d\n", RES[i].first + 1, RES[i].second + 1);
  return 0;
}
