func_code_string: #include <bits/stdc++.h>   using namespace std;   constexpr int maxn = 1010;   int n;   bool e[maxn][maxn];   pair<int, int> flip(int a, int b, bool inv) {     int x = -1, y;     for (int i = 0; i < n; i++)       if (e[a][i] && e[b][i])         if (x == -1)           x = i;         else {           y = i;           break;         }     e[a][b] = e[b][a] = false;     e[x][y] = e[y][x] = true;     return inv ? make_pair(x, y) : make_pair(a, b);   }   vector<pair<int, int> > solve(bool inv) {     memset(e, 0, sizeof(e));     for (int i = 0; i < n; i++) e[i][(i + 1) % n] = e[(i + 1) % n][i] = true;     for (int i = 0, a, b; i < n - 3; i++) {       cin >> a >> b;       a--;       b--;       e[a][b] = e[b][a] = true;     }     vector<pair<int, int> > res;     for (int i = 1; i < n;) {       if (e[0][i]) {         i++;         continue;       }       int j;       for (j = i + 1; e[0][j] == 0; j++)         ;       res.push_back(flip(i - 1, j, inv));     }     return res;   }   int main() {     ios_base::sync_with_stdio(false);     cin >> n;     vector<pair<int, int> > a = solve(false), b = solve(true);     cout << a.size() + b.size() << endl;     for (int i = 0; i < (int)a.size(); i++)       cout << a[i].first + 1 <<     << a[i].second + 1 << endl;     for (int i = b.size() - 1; i >= 0; i--)       cout << b[i].first + 1 <<     << b[i].second + 1 << endl;     return 0;   }   