#include <bits/stdc++.h>
using namespace std;
int power(int a, int b, int c, int ans = 1) {
  for (; b; b >>= 1, a = (long long)a * a % c)
    if (b & 1) ans = (long long)ans * a % c;
  return ans;
}
const int NN = 1010;
vector<pair<int, int> > ans;
bool adj[NN][NN];
int flag;
void solve(int st, int ed) {
  if (st == ed || st + 1 == ed) return;
  for (int i = st + 1; i < ed; i++)
    if (adj[1][i]) {
      solve(st, i), solve(i, ed);
      return;
    }
  if (!flag) ans.emplace_back(st, ed);
  for (int i = st + 1; i < ed; i++)
    if (adj[st][i] && adj[i][ed]) {
      if (flag) ans.emplace_back(1, i);
      solve(st, i), solve(i, ed);
      return;
    }
  int ok = -1;
  for (int i = st + 1; i < ed; i++)
    if (adj[st][i]) ok = i;
  if (~ok) {
    if (flag) ans.emplace_back(1, ok);
    solve(st, ok), solve(ok, ed);
    return;
  }
  if (flag) ans.emplace_back(1, st + 1);
  solve(st + 1, ed);
}
int main() {
  int n, u, v;
  cin >> n;
  for (int i = 3; i < n; i++) {
    scanf("%d%d", &u, &v);
    adj[u][v] = adj[v][u] = 1;
  }
  solve(2, n);
  int cnt = ans.size();
  memset(adj, 0, sizeof adj);
  for (int i = 2; i < n; i++) {
    scanf("%d%d", &u, &v);
    adj[u][v] = adj[v][u] = 1;
  }
  flag = 1;
  solve(2, n);
  reverse(ans.begin() + cnt, ans.end());
  cout << ans.size() << endl;
  for (auto a : ans) printf("%d %d\n", a.first, a.second);
  return 0;
}
