#include <bits/stdc++.h>
using namespace std;
int N;
vector<pair<int, int> > moves, ans;
map<int, bool> g[1010];
void getmoves(int l, int r, bool t) {
  if (r - l == 1) return;
  int mid;
  for (mid = l + 1; mid < r; mid++)
    if (g[mid][l] && g[mid][r]) {
      if (!t)
        moves.push_back({l, r});
      else
        moves.push_back({1, mid});
      getmoves(l, mid, t);
      getmoves(mid, r, t);
    }
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cin >> N;
  int i, k, x, y;
  for (k = 0; k < 2; k++) {
    for (i = 1; i <= N; i++) g[i].clear();
    for (i = 1; i <= N; i++) g[i][i % N + 1] = g[i % N + 1][i] = 1;
    vector<int> vec(0);
    for (i = 1; i <= N - 3; i++) {
      cin >> x >> y;
      if (x > y) swap(x, y);
      g[x][y] = g[y][x] = 1;
      if (x == 1) vec.push_back(y);
    }
    vec.push_back(2), vec.push_back(N);
    sort(vec.begin(), vec.end());
    moves.clear();
    for (i = 0; i < (int)vec.size() - 1; i++) getmoves(vec[i], vec[i + 1], k);
    if (k) reverse(moves.begin(), moves.end());
    ans.insert(ans.end(), moves.begin(), moves.end());
  }
  cout << ans.size() << "\n";
  for (pair<int, int> mv : ans) cout << mv.first << " " << mv.second << "\n";
  return 0;
}
