#include <iostream>
#include <iomanip>
#include <math.h>
using namespace std;

#define L 0.00001

typedef struct {
	double x, y;
} P;
typedef struct {
	double a, b, c;
} EQ;

int n;
P p[3];
double r;

inline bool is0(double d) {
	return d < L && d > -L;
}

inline EQ get_eq(P p1, P p2) {
	return{ p2.y - p1.y, p1.x - p2.x, (p2.y - p1.y)*p1.x - (p2.x - p1.x)*p1.y };
}

inline P get_center(P p1, P p2) {
	return{ (p1.x + p2.x) / 2, (p1.y + p2.y) / 2 };
}

inline EQ conv_ra(EQ eq, P p) {
	return{ eq.b, -eq.a, eq.b*p.x - eq.a*p.y };
}

inline P get_p(EQ eq1, EQ eq2) {
	double y;
	if (is0(eq1.a)) {
		y = eq1.c / eq1.b;
		return{ (eq2.c - eq2.b*y) / eq2.a,y };
	}
	else if (is0(eq2.a)) {
		y = eq2.c / eq2.b;
		return{ (eq1.c - eq1.b*y) / eq1.a,y };
	}
	else {
		y = (eq1.c*eq2.a - eq2.c*eq1.a) / (eq1.b*eq2.a - eq2.b - eq1.a);
		return{ (eq1.c - eq1.b*y) / eq1.a,y };
	}
}

inline double dist(P p1, P p2) {
	return sqrt(pow((p1.x - p2.x), 2) + pow(p1.y - p2.y, 2));
}

inline EQ get_ieq(P p1, P p2) {
	return conv_ra(get_eq(p1, p2), get_center(p1, p2));
}

inline double rnd(double d) {
	int a = d * 10000;
	if (a % 10 >= 5) {
		a += 10;
	}
	a /= 10;
	return a * 0.001;
}

int main(){
	cin >> n;
	EQ eq1, eq2;
	P c;
	double r;
	for (int I = 0; I < n; I++) {
		for (int i = 0; i < 3; i++) {
			cin >> p[i].x >> p[i].y;
		}
	}
	eq1 = get_ieq(p[0], p[1]);
	eq2 = get_ieq(p[1], p[2]);
	c = get_p(eq1, eq2);
	r = dist(c, p[0]);
	cout << fixed << setprecision(3) << rnd(c.x) << " " << rnd(c.y) << " " << rnd(r) << endl;

	return 0;
}