#include <bits/stdc++.h>
#pragma warning(disable : 4996)
using namespace std;
const long long mod = 1000000007;
const int maxn = 1e5 + 5;
const double PI = acos(-1.0);
int n;
pair<int, int> val[2][maxn];
void solve() {
  int i, j;
  int f, v, tot0, tot1;
  scanf("%d", &n);
  int st0 = 0, st1 = 0;
  for (i = 1; i <= n; i++) {
    scanf("%d%d", &f, &v);
    if (f == 0) {
      val[f][++st0] = make_pair(v, i);
    } else {
      val[f][++st1] = make_pair(v, i);
    }
  }
  sort(val[0] + 1, val[0] + st0 + 1);
  sort(val[1] + 1, val[1] + st1 + 1);
  tot0 = st0, tot1 = st1;
  st0 = 1, st1 = 1;
  for (i = 1; i <= n - 1; i++) {
    int va = min(val[0][st0].first, val[1][st1].first);
    printf("%d %d %d\n", val[0][st0].second, val[1][st1].second, va);
    val[0][st0].first -= va, val[1][st1].first -= va;
    if (val[0][st0].first) {
      st1++;
    } else if (val[1][st1].first) {
      st0++;
    } else if (st0 < tot0) {
      st0++;
    } else {
      st1++;
    }
  }
}
int main() {
  solve();
  return 0;
}
