#include <bits/stdc++.h>
using namespace std;
const int MAX = 1007;
int n, row[MAX], col[MAX], arr[MAX][MAX];
vector<pair<int, pair<int, int> > > ans;
int main() {
  cin >> n;
  memset(arr, 0, sizeof arr);
  memset(row, 0, sizeof row);
  memset(col, 0, sizeof col);
  for (int i = 0; i < n - 1; i++) {
    int r, c;
    cin >> r >> c;
    --r;
    --c;
    row[r]++;
    col[c]++;
    arr[r][c] = 1;
  }
  int rem = n - 1;
  for (int c = n - 1; c > 0; c--) {
    if (!rem) break;
    int j = c;
    while (col[j] != 0) j--;
    if (j != c) {
      swap(col[j], col[c]);
      for (int i = 0; i < n; i++) swap(arr[i][j], arr[i][c]);
      ans.push_back(make_pair(2, make_pair(j, c)));
    }
    int i = c;
    while (row[i] == 0) i--;
    if (i != c) {
      swap(row[i], row[c]);
      for (int j = 0; j < n; j++) swap(arr[i][j], arr[c][j]);
      ans.push_back(make_pair(1, make_pair(i, c)));
    }
    for (int j = 0; j < n; j++) {
      col[j] -= arr[c][j];
      rem -= arr[c][j];
    }
  }
  cout << ans.size() << endl;
  for (int i = 0; i < (int)ans.size(); i++)
    cout << ans[i].first << " " << ans[i].second.first + 1 << " "
         << ans[i].second.second + 1 << endl;
  return 0;
}
