#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 10;
int nums[N];
int ops[N];
int v1[N];
int v2[N];
int main() {
  int n;
  scanf("%d", &n);
  int tmp;
  int cnt0 = 0;
  int cnt1 = 0;
  for (int i = 1; i <= n; ++i) {
    scanf("%d", &nums[i]);
    if (nums[i] == 0) cnt0++;
    if (nums[i] < 0) cnt1++;
  }
  for (int i = 1; i <= n - 1; ++i) {
    ops[i] = 1;
    v1[i] = i;
    v2[i] = i + 1;
  }
  if (cnt0 == 0) {
    if (cnt1 % 2 == 1) {
      int pos = -1;
      for (int i = 1; i <= n; ++i) {
        if (nums[i] < 0) {
          if (pos == -1)
            pos = i;
          else if (nums[i] > nums[pos])
            pos = i;
        }
      }
      if (pos == 1) {
        ops[1] = 2;
      } else {
        ops[pos - 1] = 2;
        v1[pos - 1] = pos;
        if (pos < n) {
          v1[pos] = pos - 1;
        }
      }
    }
  } else {
    if (cnt1 % 2 == 0) {
      int pos = 1;
      int prev = -1;
      for (int i = 1; i <= n; ++i) {
        if (nums[i] == 0) {
          if (prev != -1) {
            v1[pos] = prev;
            v2[pos] = i;
            ++pos;
          }
          prev = i;
        }
      }
      ops[pos] = 2;
      v1[pos] = prev;
      ++pos;
      prev = -1;
      for (int i = 1; i <= n; ++i) {
        if (nums[i] != 0) {
          if (prev != -1) {
            v1[pos] = prev;
            v2[pos] = i;
            ++pos;
          }
          prev = i;
        }
      }
    } else {
      int pos = 1;
      int prev = -1;
      for (int i = 1; i <= n; ++i) {
        if (nums[i] == 0) {
          if (prev != -1) {
            v1[pos] = prev;
            v2[pos] = i;
            ++pos;
          }
          prev = i;
        }
      }
      int p = -1;
      for (int i = 1; i <= n; ++i) {
        if (nums[i] < 0) {
          if (p == -1)
            p = i;
          else if (nums[i] > nums[p])
            p = i;
        }
      }
      v1[pos] = prev;
      v2[pos] = p;
      ++pos;
      ops[pos] = 2;
      v1[pos] = p;
      ++pos;
      prev = -1;
      for (int i = 1; i <= n; ++i) {
        if (i == p) continue;
        if (nums[i] != 0) {
          if (prev != -1) {
            v1[pos] = prev;
            v2[pos] = i;
            ++pos;
          }
          prev = i;
        }
      }
    }
  }
  for (int i = 1; i <= n - 1; ++i) {
    if (ops[i] == 1) {
      printf("%d %d %d\n", 1, v1[i], v2[i]);
    } else {
      printf("%d %d\n", 2, v1[i]);
    }
  }
  return 0;
}
