#include <bits/stdc++.h>
using namespace std;
long long pow(long long a, long long b, long long m) {
  if (a == 0) return 0;
  if (b == 0) return 1;
  long long temp = pow(a, b / 2, m);
  temp = ((temp % m) * (temp % m)) % m;
  if (b & 1) temp = ((temp % m) * (a % m)) % m;
  return temp;
}
long long string_to_num(string s) {
  stringstream num(s);
  long long x;
  num >> x;
  return x;
}
string num_to_string(long long n) {
  string s;
  while (n > 0) {
    s = char(n % 10 + '0') + s;
    n /= 10;
  }
  return ((s.length() == 0) ? "0" : s);
}
const long long MOD = 998244353;
const long long mod = 1e9 + 7;
const long long N = 2e3 + 5;
long long arr[N][N];
void solve() {
  long long n;
  cin >> n;
  memset(arr, 0, sizeof(arr));
  for (long long i = 0; i < n - 1; i++) {
    long long x, y;
    cin >> x >> y;
    arr[x - 1][y - 1] = 1;
  }
  vector<pair<long long, pair<long long, long long>>> ans;
  auto fun = [&](long long type, long long a, long long b) {
    if (a == b) return;
    if (type == 1) {
      for (long long j = 0; j < n; j++) {
        swap(arr[a][j], arr[b][j]);
      }
    } else {
      for (long long i = 0; i < n; i++) {
        swap(arr[i][a], arr[i][b]);
      }
    }
    ans.push_back({type, {a, b}});
    return;
  };
  long long l_r = n - 1;
  long long l_c = n - 2;
  for (long long i = n - 1; i >= 0; i--) {
    while (l_r >= 0) {
      bool okk = false;
      for (long long j = 0; j < n; j++)
        if (arr[l_r][j]) okk = true;
      if (okk) break;
      l_r--;
    }
    if (l_r < 0) break;
    fun(1, i, l_r);
    while (arr[i][l_c]) l_c--;
    for (long long j = i; j < n; j++) {
      if (arr[i][j]) {
        fun(2, j, l_c);
        while (arr[i][l_c]) l_c--;
      }
    }
    for (long long j = l_c; j >= 0; j--) {
      if (arr[i][j]) {
        fun(2, j, l_c);
        while (arr[i][l_c]) l_c--;
      }
    }
    l_r--;
  }
  cout << ans.size() << '\n';
  for (long long i = 0; i < ans.size(); i++) {
    cout << ans[i].first << " " << ans[i].second.first + 1 << " "
         << ans[i].second.second + 1 << '\n';
  }
}
int32_t main() {
  long long t = 1;
  for (long long T = 1; T <= t; T++) {
    solve();
  }
}
