#include <bits/stdc++.h>
using namespace std;
void trace_() { cerr << "\n"; }
template <typename T1, typename... T2>
void trace_(T1 t1, T2... t2) {
  cerr << ' ' << t1;
  trace_(t2...);
}
const long long mxN = 1e3 + 5;
long long n, a, b;
vector<long long> g[mxN];
signed main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  ;
  cin >> n;
  vector<pair<long long, long long> > v1, v2;
  for (long long i = 0; i < n - 3; i++) {
    cin >> a >> b;
    if (a > b) swap(a, b);
    if (a != 1) v1.emplace_back(a, b);
  }
  sort(v1.begin(), v1.end(),
       [](pair<long long, long long> a, pair<long long, long long> b) {
         if (a.first == b.first) return a.second > b.second;
         return a.first < b.first;
       });
  for (long long i = 0; i < n - 3; i++) {
    cin >> a >> b;
    if (a > b) swap(a, b);
    g[a].push_back(b);
  }
  for (long long i = 2; i <= n; i++) {
    sort(g[i].begin(), g[i].end());
    reverse(g[i].begin(), g[i].end());
    for (long long j = 1; j < (long long)(g[i].size()); j++)
      v2.emplace_back(1, g[i][j]);
    if ((long long)(g[i].size()) >= 1) v2.emplace_back(1, i + 1);
  }
  cout << (long long)(v1.size()) + (long long)(v2.size()) << '\n';
  for (pair<long long, long long> i : v1)
    cout << i.first << ' ' << i.second << '\n';
  reverse(v2.begin(), v2.end());
  for (pair<long long, long long> i : v2)
    cout << i.first << ' ' << i.second << '\n';
}
