#include <bits/stdc++.h>
using namespace std;
bool debug = 1;
int n, m, k;
int dx[4] = {0, 1, 0, -1}, dy[4] = {1, 0, -1, 0};
long long ln, lk, lm;
bool b[1005][1005];
void init() {
  memset(b, 0, sizeof b);
  for (int(i) = 1; (i) <= (int)(n); (i)++) {
    int j = i == n ? 1 : i + 1;
    b[i][j] = 1;
    b[j][i] = 1;
  }
}
vector<pair<int, int>> ans;
void cal(bool first) {
  init();
  for (int i = 0, u, v; i < n - 3; i++) {
    scanf("%d%d", &u, &v);
    b[u][v] = 1;
    b[v][u] = 1;
  }
  vector<pair<int, int>> tmp;
  for (int i = 2; i <= n - 1;) {
    if (b[1][i + 1]) {
      i++;
      continue;
    }
    int j = i + 1;
    while (!b[1][j]) j++;
    assert(b[i][j] == 1);
    int k = 0;
    for (k = i + 1; k < j; k++)
      if (b[i][k] && b[k][j]) break;
    assert(k != 0);
    b[i][j] = 0;
    b[j][i] = 0;
    b[1][k] = b[k][1] = 1;
    if (first) {
      ans.push_back({i, j});
    } else {
      tmp.push_back({1, k});
    }
  }
  if (!first) {
    reverse(tmp.begin(), tmp.end());
    for (auto p : tmp) ans.push_back(p);
  }
}
int main() {
  scanf("%d", &n);
  cal(1);
  cal(0);
  printf("%d\n", ans.size());
  for (auto p : ans) printf("%d %d\n", p.first, p.second);
  return 0;
}
