#include <cstdio>
#include <cstdlib>
#include <stack>
#include <utility>
using namespace std;

typedef pair<int, int> Pair;
typedef pair<int, Pair> Data;

int n;
int total;
int field[10][10];
stack<Data> ans;

bool AddPlace(int y, int x, int type, int t) {
  bool ret = true;

  if (type == 1) {
    for (int i=-1; i<=1; i++) {
      for (int j=-1; j<=1; j++) {
        if (abs(i)+abs(j) >= 2) continue;
        int newy = y + i;
        int newx = x + j;
        field[newy][newx] += t;
        if (field[newy][newx] < 0) ret = false;
      }
    }
  } else if (type == 2) {
    for (int i=-1; i<=1; i++) {
      for (int j=-1; j<=1; j++) {
        int newy = y + i;
        int newx = x + j;
        field[newy][newx] += t;
        if (field[newy][newx] < 0) ret = false;
      }
    }
  } else if (type == 3) {
    for (int i=-2; i<=2; i++) {
      for (int j=-2; j<=2; j++) {
        if (abs(i)+abs(j) >= 3) continue;
        int newy = y + i;
        int newx = x + j;
        field[newy][newx] += t;
        if (field[newy][newx] < 0) ret = false;
      }
    }
  }

  return ret;
}

void check(int x, int y, int z) {
  if (x > 0) {
    for (int i=1; i<9; i++) {
      for (int j=1; j<9; j++) {
        if (AddPlace(i, j, 1, -1)) {
          ans.push(Data(1, Pair(i, j)));
          check(x-1, y, z);
          ans.pop();
        }

        AddPlace(i, j, 1, 1);
      }
    }

    return;
  }

  if (y > 0) {
    for (int i=1; i<9; i++) {
      for (int j=1; j<9; j++) {
        if (AddPlace(i, j, 2, -1)) {
          ans.push(Data(2, Pair(i, j)));
          check(x, y-1, z);
          ans.pop();
        }

        AddPlace(i, j, 2, 1);
      }
    }

    return;
  }

  if (z > 0) {
    for (int i=2; i<8; i++) {
      for (int j=2; j<8; j++) {
        if (AddPlace(i, j, 3, -1)) {
          ans.push(Data(3, Pair(i, j)));
          check(x, y, z-1);
          ans.pop();
        }

        AddPlace(i, j, 3, 1);
      }
    }

    return;
  }

  while (!ans.empty()) {
    Data d = ans.top(); ans.pop();
    int level = d.first;
    Pair p = d.second;
    printf("%d %d %d\n", p.second, p.first, level);
  }

  exit(0);
}

int main() {
  scanf("%d", &n);
  for (int i=0; i<10; i++) {
    for (int j=0; j<10; j++) {
      scanf("%d", &field[i][j]);
      total += field[i][j];
    }
  }

  int x = 0;
  int y = (13*n-total)/4;
  while (y >= 0) {
    int z = n-(x+y);
    if (z < 0) {
      y -= 2;
      x += 1;
      continue;
    }

    check(x, y, z);
    y -= 2;
    x += 1;
  }
}