#include <bits/stdc++.h>
using namespace std;
int N;
int a[1010], b[1010];
bool graph[1010][1010];
vector<pair<int, int> > v;
vector<pair<int, int> > ans;
void func(void) {
  int i, j;
  for ((i) = 0; (i) < (int)(N); (i)++)
    for ((j) = 0; (j) < (int)(N); (j)++) graph[i][j] = false;
  for ((i) = 0; (i) < (int)(N - 3); (i)++)
    graph[a[i]][b[i]] = graph[b[i]][a[i]] = true;
  for ((i) = 0; (i) < (int)(N); (i)++)
    graph[i][(i + 1) % N] = graph[(i + 1) % N][i] = true;
  while (1) {
    int id = -1;
    int best = -1;
    for ((i) = 0; (i) < (int)(N - 3); (i)++)
      if (a[i] != 0 && b[i] != 0 && abs(a[i] - b[i]) > best) {
        id = i;
        best = abs(a[i] - b[i]);
      }
    if (id == -1) break;
    v.push_back(make_pair(a[id], b[id]));
    graph[a[id]][b[id]] = graph[b[id]][a[id]] = false;
    int x = -1;
    for ((i) = 0; (i) < (int)(N); (i)++)
      if (graph[a[id]][i] && graph[b[id]][i]) x = i;
    a[id] = 0;
    b[id] = x;
    v.push_back(make_pair(a[id], b[id]));
    graph[a[id]][b[id]] = graph[b[id]][a[id]] = true;
  }
}
int main(void) {
  int i, j;
  cin >> N;
  for ((i) = 0; (i) < (int)(N - 3); (i)++) cin >> a[i] >> b[i];
  for ((i) = 0; (i) < (int)(N - 3); (i)++) {
    a[i]--;
    b[i]--;
  }
  v.clear();
  func();
  for (i = 0; i < v.size(); i += 2) ans.push_back(v[i]);
  for ((i) = 0; (i) < (int)(N - 3); (i)++) cin >> a[i] >> b[i];
  for ((i) = 0; (i) < (int)(N - 3); (i)++) {
    a[i]--;
    b[i]--;
  }
  v.clear();
  func();
  reverse(v.begin(), v.end());
  for (i = 0; i < v.size(); i += 2) ans.push_back(v[i]);
  cout << ans.size() << endl;
  for ((i) = 0; (i) < (int)(ans.size()); (i)++)
    cout << ans[i].first + 1 << ' ' << ans[i].second + 1 << endl;
  return 0;
}
