#include <bits/stdc++.h>
using namespace std;
struct vt {
  int p;
  int a;
  int b;
};
int main() {
  int n, index;
  cin >> n;
  int a[n + 5], b[200005];
  for (int i = 1; i < 200005; i++) {
    b[i] = 0;
  }
  int maxd = 0;
  for (int i = 1; i <= n; i++) {
    cin >> a[i];
    b[a[i]]++;
  }
  for (int i = n; i >= 1; i--) {
    if (maxd < b[a[i]]) {
      maxd = b[a[i]];
      index = i;
    }
  }
  if (maxd == n)
    cout << '0';
  else if (maxd == 1) {
    int u = 0;
    vt x[n + 5];
    for (int i = 2; i <= n; i++) {
      if (a[i] == a[i - 1]) continue;
      if (a[i] > a[i - 1]) {
        x[u].p = 2;
        x[u].a = i;
        x[u].b = i - 1;
        u++;
        a[i] = a[i - 1];
      } else if (a[i] < a[i - 1]) {
        x[u].p = 1;
        x[u].a = i;
        x[u].b = i - 1;
        u++;
        a[i] = a[i - 1];
      }
    }
    cout << u << endl;
    for (int i = 0; i < u; i++) {
      cout << x[i].p << ' ' << x[i].a << ' ' << x[i].b << endl;
    }
  } else {
    int u = 0;
    vt x[n + 5];
    for (int i = index - 1; i >= 1; i--) {
      if (a[i] == a[i + 1]) continue;
      if (a[i] > a[i + 1]) {
        x[u].p = 2;
        x[u].a = i;
        x[u].b = i + 1;
        u++;
        a[i] = a[i + 1];
      } else if (a[i] < a[i + 1]) {
        x[u].p = 1;
        x[u].a = i;
        x[u].b = i + 1;
        u++;
        a[i] = a[i + 1];
      }
    }
    for (int i = index + 1; i <= n; i++) {
      if (a[i] == a[i - 1]) continue;
      if (a[i] > a[i - 1]) {
        x[u].p = 2;
        x[u].a = i;
        x[u].b = i - 1;
        u++;
        a[i] = a[i - 1];
      } else if (a[i] < a[i - 1]) {
        x[u].p = 1;
        x[u].a = i;
        x[u].b = i - 1;
        u++;
        a[i] = a[i - 1];
      }
    }
    cout << u << endl;
    for (int i = 0; i < u; i++) {
      cout << x[i].p << ' ' << x[i].a << ' ' << x[i].b << endl;
    }
  }
}
