#include<bits/stdc++.h>
using namespace std;
#define ff first
#define ss second
#define pb push_back
#define int long long
const int N=3e5;
int cnt[N];
int L[N],R[N];
int D,n;
set<int>vc[N];
bool vis[N];
signed main(){
cin>>n;
vector<int>v;
pair<int,int>mx={0,0};
for(int i=0;i<n;i++){
int l,r;
cin>>l>>r;
if(l>r)swap(l,r);
L[i]=l,R[i]=r;
vc[l].insert(i);
vc[r].insert(i);
if((l+r)%2==0)continue;
cnt[(l+r)%(2*n)]++;
mx=max(mx,{cnt[(l+r)%(2*n)], (l+r)%(2*n)});
}
cout<<n-mx.ff<<endl;
D=mx.ss;
for(int i=0;i<n;i++){
if((L[i]+R[i])%(2*n)==D)continue;
if(vis[L[i]]==0){
int r= (2*n+D-L[i])%(2*n);
vc[R[i]].erase(i);
vc[r].insert(i);
cout<<i<<" "<<R[i]<<" "<<r<<endl;
R[i]=r;
vis[min(R[i],L[i])]=1;
}
else{
int l= (2*n+D-R[i])%(2*n);
vc[L[i]].erase(i);
vc[l].insert(i);
cout<<i<<" "<<L[i]<<" "<<l<<endl;
L[i]=l;
vis[min(R[i],L[i])]=1;
}
}
}