#include <bits/stdc++.h>
using namespace std;
int read() {
  char ch = '!';
  int res = 0, f = 0;
  while (!isdigit(ch)) {
    ch = getchar();
    if (ch == '-') f = 1;
  }
  while (isdigit(ch)) res = res * 10 + ch - '0', ch = getchar();
  return f ? -res : res;
}
int n, g[1003][1003];
vector<pair<int, int> > ans1, ans2;
pair<int, int> flip(int x, int y, int o) {
  int a = 0, b = 0;
  for (int i = 1; i <= n; ++i)
    if (g[i][x] && g[i][y]) a ? (b = i) : (a = i);
  g[a][b] = g[b][a] = 1;
  g[x][y] = g[y][x] = 0;
  return !o ? pair<int, int>(x, y) : pair<int, int>(a, b);
}
void solve(int o) {
  for (int i = 2; i <= n;) {
    if (g[1][i]) {
      ++i;
      continue;
    }
    for (int j = n; j >= i + 1; --j)
      if (g[i - 1][j]) {
        (o ? ans2 : ans1).push_back(flip(i - 1, j, o));
        break;
      }
  }
}
int main() {
  n = read();
  for (int i = 1; i <= n - 3; ++i) {
    int x = read(), y = read();
    g[x][y] = g[y][x] = 1;
  }
  for (int i = 1; i < n; ++i) g[i][i + 1] = g[i + 1][i] = 1;
  g[n][1] = g[1][n] = 1;
  solve(0);
  memset(g, 0, sizeof(g));
  for (int i = 1; i <= n - 3; ++i) {
    int x = read(), y = read();
    g[x][y] = g[y][x] = 1;
  }
  for (int i = 1; i < n; ++i) g[i][i + 1] = g[i + 1][i] = 1;
  g[n][1] = g[1][n] = 1;
  solve(1);
  cout << ans1.size() + ans2.size() << endl;
  reverse(ans2.begin(), ans2.end());
  for (auto p : ans1) printf("%d %d\n", p.first, p.second);
  for (auto p : ans2) printf("%d %d\n", p.first, p.second);
  return 0;
}
