#include <bits/stdc++.h>
using namespace std;
const signed long long Infinity = 1000000100;
const long double Epsilon = 1e-9;
template <typename T, typename U>
ostream& operator<<(ostream& os, const pair<T, U>& p) {
  return os << "(" << p.first << "," << p.second << ")";
}
template <typename T>
ostream& operator<<(ostream& os, const vector<T>& V) {
  os << "[";
  for (int(i) = (0); (i) < (int(V.size())); (i)++)
    os << V[i] << ((i == int(V.size()) - 1) ? "" : ",");
  return os << "]";
}
template <typename T>
ostream& operator<<(ostream& os, const set<T>& S) {
  os << "(";
  for (T i : S) os << i << (i == *S.rbegin() ? "" : ",");
  return os << ")";
}
template <typename T, typename U>
ostream& operator<<(ostream& os, const map<T, U>& M) {
  os << "{";
  for (pair<T, U> i : M) os << i << (i.first == M.rbegin()->first ? "" : ",");
  return os << "}";
}
template <typename T, typename F>
T lbound(T p, T q, F f) {
  while (p < q) {
    T r = p + (q - p) / 2;
    if (f(r))
      q = r;
    else
      p = r + 1;
  }
  return p;
}
template <typename T, typename F>
T lboundl(T p, T q, F f) {
  for (int(i) = (1); (i) <= (70); (i)++) {
    T r = (p + q) / 2;
    if (f(r))
      q = r;
    else
      p = r;
  }
  return p;
}
vector<pair<int, int> > normalize(vector<pair<int, int> > e, int n, int rev) {
  vector<vector<int> > v(n + 1, vector<int>(n + 1, 0));
  for (int(i) = (1); (i) <= (n - 1); (i)++) {
    v[i][i + 1] = v[i + 1][i] = 1;
  }
  v[1][n] = v[n][1] = 1;
  for (pair<int, int> p : e) {
    v[p.first][p.second] = v[p.second][p.first] = 1;
  }
  int rem = n - 1;
  for (int(i) = (2); (i) <= (n); (i)++) rem -= v[1][i];
  vector<pair<int, int> > ret;
  while (rem--) {
    int x = 2, y;
    while (v[1][x + 1]) x++;
    y = x + 1;
    while (!v[1][y]) y++;
    int b = y - 1;
    while (!v[x][b]) b--;
    v[x][y] = v[y][x] = 0;
    v[1][b] = v[b][1] = 1;
    if (rev)
      ret.push_back(make_pair(1, b));
    else
      ret.push_back(make_pair(x, y));
  }
  return ret;
}
int main() {
  ios_base::sync_with_stdio(0);
  int n;
  cin >> n;
  vector<pair<int, int> > st(n - 3), en(n - 3), ans, ans2;
  for (int(i) = (0); (i) <= (n - 4); (i)++) cin >> st[i].first >> st[i].second;
  ans = normalize(st, n, 0);
  for (int(i) = (0); (i) <= (n - 4); (i)++) cin >> en[i].first >> en[i].second;
  ans2 = normalize(en, n, 1);
  reverse(ans2.begin(), ans2.end());
  ans.insert(ans.end(), ans2.begin(), ans2.end());
  cout << int(ans.size()) << "\n";
  for (pair<int, int> p : ans) cout << p.first << " " << p.second << "\n";
}
