#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define int long long
#define maxn 500005
#define mi LLONG_MIN
#define ma LLONG_MAX
#define mod 1000000007
#define pb push_back
#define S second
#define F first
struct st {
int c, x, y;
};
void solve() {
int n;
cin >> n;
vector<pair<int, int>> a(n * 2);
for (int i = 0; i < n; i++) {
int l, r;
cin >> l >> r;
a[l] = {i, r};
a[r] = {i, l};
}
int ans = ma;
vector<st> vec;
for (int x = 0; x < n * 2; x++) {
int y = (x + 1) % (n * 2);
vector<st> v;
vector<pair<int, int>> na = a;
for (int l = x, r = y, cnt = 0; cnt < n; cnt++) {
// cout << l << " " << r << "\n";
if (na[l].S != r) {
if (na[l].F != -1) {
v.pb({na[l].F, na[l].S, r});
na[na[l].S].F = -1;
na[l].S = r;
} else {
v.pb({na[r].F, na[r].S, l});
na[na[r].S].F = -1;
na[r].S = l;
}
}
l = (l - 1 + n * 2) % (n * 2);
r = (r + 1) % (n * 2);
}
// cout << "\n";
/*cout << v.size() << "\n";
for (auto [p, s, e] : v) {
cout << p << " " << s << " " << e << "\n";
}*/
if (v.size() < ans) {
ans = v.size();
vec = v;
}
}
cout << ans << "\n";
for (auto [p, s, e] : vec) {
cout << p << " " << s << " " << e << "\n";
}
}
int32_t main() {
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int t = 1;
// cin >> t;
while (t--) solve();
}