#include <bits/stdc++.h>
using namespace std;
const int N = 800000 + 10;
const int X = 100000;
const int Y = 100000;
struct Point {
  int x, y;
  Point() {}
  Point(int _x, int _y) : x(_x), y(_y) {}
  int operator<(const Point &p) const {
    return x < p.x || (x == p.x && y < p.y);
  }
  Point operator-(const Point &p) const { return Point(x - p.x, y - p.y); }
  double abs() const { return sqrt(1.0 * x * x + 1.0 * y * y); }
  double det(const Point &p) const { return 1.0 * x * p.y - 1.0 * p.x * y; }
};
vector<Point> a;
Point st[N];
int top;
int n;
double ansR;
Point ansA, ansB, ansC;
double cross(const Point &o, const Point &p, const Point &q) {
  return (p - o).det(q - o);
}
int main() {
  scanf("%d", &n);
  for (int i = 0; i < n; ++i) {
    static int x, y, v;
    scanf("%d%d%d", &x, &y, &v);
    static int _x, _y;
    _x = min(x + v, X);
    _y = max(0, y - (v - (_x - x)));
    a.push_back(Point(_x, _y));
    _y = min(Y, y + (v - (_x - x)));
    a.push_back(Point(_x, _y));
    _x = max(x - v, 0);
    _y = max(0, y - (v - (x - _x)));
    a.push_back(Point(_x, _y));
    _y = min(Y, y + (v - (x - _x)));
    a.push_back(Point(_x, _y));
    _y = min(y + v, Y);
    _x = max(0, x - (v - (_y - y)));
    a.push_back(Point(_x, _y));
    _x = min(X, x + (v - (_y - y)));
    a.push_back(Point(_x, _y));
    _y = max(y - v, 0);
    _x = max(0, x - (v - (y - _y)));
    a.push_back(Point(_x, _y));
    _x = min(X, x + (v - (y - _y)));
    a.push_back(Point(_x, _y));
  }
  sort(a.begin(), a.end());
  int one = 1;
  for (int i = 0; i < (int)a.size(); ++i) {
    for (; top > one && cross(st[top - 2], st[top - 1], a[i]) <= 0; --top)
      ;
    st[top++] = a[i];
  }
  one = top--;
  for (int i = (int)a.size() - 1; i >= 0; --i) {
    for (; top > one && cross(st[top - 2], st[top - 1], a[i]) <= 0; --top)
      ;
    st[top++] = a[i];
  }
  --top;
  for (int i = 0; i < top; ++i) {
    static Point a, b, c;
    a = st[i];
    b = st[(i + 1) % top];
    c = st[(i + 2) % top];
    double s = cross(a, b, c),
           r = (b - a).abs() * (c - b).abs() * (a - c).abs() * 0.5 / s;
    if (r > ansR) {
      ansR = r;
      ansA = a;
      ansB = b;
      ansC = c;
    }
  }
  printf("%d %d\n", ansA.x, ansA.y);
  printf("%d %d\n", ansB.x, ansB.y);
  printf("%d %d\n", ansC.x, ansC.y);
  return 0;
}
