#include <bits/stdc++.h>
using namespace std;
int main() {
  ios::sync_with_stdio(false);
  int n;
  cin >> n;
  vector<int> a(n);
  int num_neg = 0, max_neg = INT_MIN, max_neg_pos = 0;
  for (int i = 0; i < n; ++i) {
    cin >> a[i];
    if (a[i] < 0) {
      ++num_neg;
      if (a[i] > max_neg) {
        max_neg = a[i];
        max_neg_pos = i;
      }
    }
  }
  vector<char> used(n, false);
  int num_used = 0;
  int zero_pos = -1;
  for (int i = 0; i < n; ++i) {
    if (a[i] == 0) {
      for (int j = i + 1; j < n; ++j) {
        if (a[j] == 0) {
          used[j] = true;
          ++num_used;
          cout << "1 " << j + 1 << ' ' << i + 1 << endl;
        }
      }
      zero_pos = i;
      break;
    }
  }
  if (zero_pos != -1) {
    if (num_neg % 2) {
      used[max_neg_pos] = true;
      ++num_used;
      cout << "1 " << max_neg_pos + 1 << ' ' << zero_pos + 1 << endl;
    }
    if (num_used < n - 1) {
      cout << "2 " << zero_pos + 1 << endl;
      used[zero_pos] = 1;
      ++num_used;
    }
  } else {
    if (num_neg % 2 == 1 && num_used < n - 1) {
      used[max_neg_pos] = true;
      cout << "2 " << max_neg_pos + 1 << endl;
      ++num_used;
    }
  }
  for (int i = 0; i < n; ++i) {
    if (!used[i]) {
      for (int j = i + 1; j < n; ++j) {
        if (!used[j]) {
          cout << "1 " << j + 1 << ' ' << i + 1 << endl;
        }
      }
      break;
    }
  }
}
