#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 D,n;
bool vis[N];
int id[N],ot[N],cnt[N];
signed main(){
cin>>n;
vector<int>v;
pair<int,int>mx={-1,1};
for(int i=0;i<n;i++){
int l,r;
cin>>l>>r;
ot[l]=r;
ot[r]=l;
id[l]=id[r]=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<2*n; i++){
if((i+ot[i])%(2*n)==D)continue;
int x=i;
while(!vis[x]){
int y= (2*n+D-x)%(2*n);
cout<<id[x]<<" "<<ot[x]<<" "<<y<<endl;
vis[x]=vis[y]=1;
x=ot[y];
}
}
}