#include <bits/stdc++.h>
int inp() {
  char c = getchar();
  while (c < '0' || c > '9') c = getchar();
  int sum = 0;
  while (c >= '0' && c <= '9') {
    sum = sum * 10 + c - '0';
    c = getchar();
  }
  return sum;
}
bool e[1010][1010];
int n;
std::vector<std::pair<int, int> > ans1, ans2;
std::pair<int, int> cut(int a, int b) {
  int x = 0;
  int y = 0;
  for (int i = 1; i <= n; i++) {
    if (e[a][i] && e[b][i]) {
      if (!x) {
        x = i;
      } else {
        y = i;
        e[a][b] = e[b][a] = false;
        e[x][y] = e[y][x] = true;
        return std::make_pair(x, y);
      }
    }
  }
  printf("Sooke AK IOI\n");
}
int main() {
  n = inp();
  for (int i = 1; i < n; i++) e[i][i + 1] = e[i + 1][i] = true;
  for (int i = 1; i <= n - 3; i++) {
    int x = inp();
    int y = inp();
    e[x][y] = e[y][x] = true;
  }
  e[1][n] = e[n][1] = true;
  for (int i = 2; i <= n; i++) {
    if (!e[1][i]) {
      for (int j = i + 1; j <= n; j++) {
        if (e[1][j]) {
          cut(i - 1, j);
          ans1.push_back(std::make_pair(i - 1, j));
          break;
        }
      }
      i--;
    }
  }
  memset(e, 0, sizeof(e));
  for (int i = 1; i < n; i++) e[i][i + 1] = e[i + 1][i] = true;
  e[1][n] = e[n][1] = true;
  for (int i = 1; i <= n - 3; i++) {
    int x = inp();
    int y = inp();
    e[x][y] = e[y][x] = true;
  }
  for (int i = 2; i <= n; i++)
    if (!e[1][i]) {
      for (int j = i + 1; j <= n; j++) {
        if (e[1][j]) {
          ans2.push_back(cut(i - 1, j));
          break;
        }
      }
      i--;
    }
  if (ans2.size()) std::reverse(ans2.begin(), ans2.end());
  printf("%d\n", ans1.size() + ans2.size());
  for (int i = 0; i < ans1.size(); i++)
    printf("%d %d\n", ans1[i].first, ans1[i].second);
  for (int i = 0; i < ans2.size(); i++)
    printf("%d %d\n", ans2[i].first, ans2[i].second);
}
