#include <bits/stdc++.h>
using namespace std;
#define int long long
#define ff first
#define ss second
signed main(){
int n;
cin >> n;
int N = 2 * n;
vector<pair<int, int>> v(n);
vector<bool> vis(N, false);
map<int, int> pos;
map<int, int> id;
map<int, int> mp;
for (int i = 0; i < n; i++) {
cin >> v[i].ff >> v[i].ss;
int k = (v[i].ff + v[i].ss) % N;
mp[k]++;
id[v[i].ff] = i;
id[v[i].ss] = i;
pos[v[i].ff] = v[i].ss;
pos[v[i].ss] = v[i].ff;
}
int mx = 0;
int goal = 1;
for (auto[x, y]: mp) {
if (x % 2 == 1) {
if (y > mx) {
mx = y;
goal = x;
}
}
}
int ans = n - mx;
cout << ans << endl;
for (int i = 0; i < N; i++) {
if((pos[i] + i) % N != goal) {
int now = i;
while (vis[now] == false) {
int opp = (goal-now+N) % N;
cout << id[now] << " " << pos[now] << " " << opp << endl;
vis[now] = true;
vis[opp] = true;
now = pos[opp];
}
}
}
return 0;
}