#include <bits/stdc++.h>
using namespace std;
struct polygon {
  int N;
  vector<int> from_zero;
  vector<set<int>> contains;
  polygon(int N) : N(N) {
    from_zero.push_back(1);
    from_zero.push_back(N - 1);
    contains = vector<set<int>>(N);
    for (int i = (0); i < (N); ++i) {
      contains[i].insert((i + 1) % N);
      contains[i].insert((i + N - 1) % N);
    }
  }
};
vector<pair<int, int>> canonicalize(polygon P, bool revert) {
  vector<pair<int, int>> res;
  while ((int)P.from_zero.size() != P.N - 1) {
    sort(P.from_zero.begin(), P.from_zero.end());
    for (int i = 0; i < (int)P.from_zero.size() - 1; ++i) {
      int u = P.from_zero[i];
      int v = P.from_zero[i + 1];
      if (u + 1 != v) {
        if (!revert) res.push_back(make_pair(u, v));
        for (int j = (1); j < (P.N); ++j) {
          if (P.contains[u].find(j) != P.contains[u].end() &&
              P.contains[v].find(j) != P.contains[v].end()) {
            P.from_zero.push_back(j);
            if (revert) res.push_back(make_pair(0, j));
            break;
          }
        }
        P.contains[u].erase(v);
        P.contains[v].erase(u);
        break;
      }
    }
  }
  return res;
}
int main(int argc, char **argv) {
  int N;
  cin >> N;
  polygon start(N), target(N);
  for (int i = (0); i < (N - 3); ++i) {
    int first, second;
    cin >> first >> second;
    --first, --second;
    if (first > second) swap(first, second);
    if (first == 0)
      start.from_zero.push_back(second);
    else {
      start.contains[first].insert(second);
      start.contains[second].insert(first);
    }
  }
  for (int i = (0); i < (N - 3); ++i) {
    int first, second;
    cin >> first >> second;
    --first, --second;
    if (first > second) swap(first, second);
    if (first == 0)
      target.from_zero.push_back(second);
    else {
      target.contains[first].insert(second);
      target.contains[second].insert(first);
    }
  }
  vector<pair<int, int>> start_to_base = canonicalize(start, false);
  vector<pair<int, int>> base_to_target = canonicalize(target, true);
  reverse(base_to_target.begin(), base_to_target.end());
  printf("%d\n", (int)start_to_base.size() + (int)base_to_target.size());
  for (auto p : start_to_base) printf("%d %d\n", p.first + 1, p.second + 1);
  for (auto p : base_to_target) printf("%d %d\n", p.first + 1, p.second + 1);
  return 0;
}
