#include <bits/stdc++.h>
using namespace std;
vector<pair<int, int> > m[2];
int L[1005], R[1005];
int n;
vector<pair<int, int> > move(vector<pair<int, int> > v) {
  set<pair<int, pair<int, int> > > s;
  vector<pair<int, int> > ans;
  for (int i = 0; i < v.size(); i++) {
    int a = v[i].first, b = v[i].second;
    if (a > b) swap(a, b);
    s.insert({a + n - b, {a, b}});
  }
  while (s.size()) {
    auto p = (*s.begin());
    s.erase(p);
    int a = p.second.first, b = p.second.second;
    if (a == 0) continue;
    ans.push_back({a, b});
  }
  return ans;
}
int main() {
  int a, b;
  cin >> n;
  for (int i = 0; i < 2; i++) {
    vector<pair<int, int> > v;
    for (int j = 0; j < n - 3; j++) {
      cin >> a >> b;
      a--;
      b--;
      v.push_back({a, b});
    }
    m[i] = move(v);
    if (i) reverse(m[i].begin(), m[i].end());
  }
  for (int i = 0; i < n; i++) {
    L[i] = (i + 1) % n;
    R[i] = (n + i - 1) % n;
  }
  for (int i = 0; i < m[1].size(); i++) {
    int a = m[1][i].first, b = m[1][i].second;
    if (a < b) swap(a, b);
    if (b == 0) continue;
    m[1][i] = {0, R[a]};
    R[a] = b;
    L[b] = a;
  }
  cout << m[0].size() + m[1].size() << endl;
  for (int i = 0; i < 2; i++)
    for (int j = 0; j < m[i].size(); j++)
      cout << m[i][j].first + 1 << ' ' << m[i][j].second + 1 << endl;
  return 0;
}
