#include <bits/stdc++.h>
using namespace std;
const long long mod = 1000000007;
long long powmod(long long a, long long b) {
  long long res = 1;
  a %= mod;
  for (; b; b >>= 1) {
    if (b & 1) res = res * a % mod;
    a = a * a % mod;
  }
  return res;
}
vector<pair<int, int> > E, ans;
vector<pair<pair<int, int>, pair<int, int> > > ret, ret2;
int e[1010][1010], u, v, n;
void gao(int l, int r, vector<pair<pair<int, int>, pair<int, int> > > &res) {
  if (l + 1 == r) return;
  int md = (l + r) >> 1;
  E.clear();
  for (int i = l; i < md; i++)
    for (int j = r + 1 - 1; j >= md + 1; j--)
      if (e[i][j]) {
        E.push_back(make_pair(i, j));
      }
  if (!((int)(E).size())) {
    gao(l, md, res);
    gao(md, r, res);
    return;
  }
  int cu = E[0].first, cv = E[0].second;
  for (int i = 0; i < ((int)(E).size()); i++) {
    int nv = 0;
    if (i == ((int)(E).size()) - 1)
      nv = md;
    else if (E[i].first == E[i + 1].first)
      nv = E[i + 1].second;
    else
      nv = E[i + 1].first;
    e[cu][cv] = e[cv][cu] = 0;
    e[0][nv] = e[nv][0] = 1;
    res.push_back(make_pair(make_pair(cu, cv), make_pair(0, nv)));
    if (i != ((int)(E).size()) - 1) {
      if (E[i].first == E[i + 1].first)
        cv = E[i + 1].second;
      else
        cu = E[i + 1].first;
    }
  }
  gao(l, md, res);
  gao(md, r, res);
}
int main() {
  scanf("%d", &n);
  for (int i = 0; i < n - 3; i++) {
    scanf("%d%d", &u, &v);
    --u;
    --v;
    e[u][v] = 1;
    e[v][u] = 1;
  }
  gao(1, n - 1, ret);
  memset(e, 0, sizeof(e));
  for (int i = 0; i < n - 3; i++) {
    scanf("%d%d", &u, &v);
    --u;
    --v;
    e[u][v] = 1;
    e[v][u] = 1;
  }
  gao(1, n - 1, ret2);
  for (auto p : ret) ans.push_back(p.first);
  reverse((ret2).begin(), (ret2).end());
  for (auto p : ret2) ans.push_back(p.second);
  printf("%d\n", ((int)(ans).size()));
  for (int i = 0; i < ((int)(ans).size()); i++)
    printf("%d %d\n", ans[i].first + 1, ans[i].second + 1);
}
