#include <bits/stdc++.h>   using namespace std;   int x[3], y[3], r[3];   double ansx, ansy;   bool bisecting_normal(double x1, double y1, double x2, double y2, double &a,                         double &b, double &c) {     double xm = (x1 + x2) * 0.5;     double ym = (y1 + y2) * 0.5;     double xl = x2 - x1;     double yl = y2 - y1;     if (fabs(xl) < 1.0e-10 && fabs(yl) < 1.0e-10) return false;     a = xl;     b = yl;     c = -xl * xm - yl * ym;     return true;   }   bool dividing_locus(double x1, double y1, double r1, double x2, double y2,                       double r2, double &xa, double &ya, double &ra) {     double a, b, c;     if (fabs(r1 - r2) < 1.0e-10) return false;     a = -r1 * r1;     b = r2 * r2;     c = a + b;     a /= c;     b /= c;     xa = x1 * b + x2 * a;     ya = y1 * b + y2 * a;     ra = fabs(r1 * r2 / c) * sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));     return true;   }   bool line2line() {     double a, b, c, d, e, f, g;     bisecting_normal(x[0], y[0], x[1], y[1], a, b, c);     bisecting_normal(x[0], y[0], x[2], y[2], d, e, f);     g = a * e - b * d;     if (fabs(g) < 1.0e-10) return false;     ansx = (b * f - e * c) / g;     ansy = (d * c - a * f) / g;     return true;   }   bool line2circle(int z) {     int z1, z2;     double a, b, c, d, e, s, t, u, n, xm, ym, xa1, xa2, ya1, ya2, d1, d2;     z1 = (z + 1) % 3;     z2 = (z + 2) % 3;     bisecting_normal(x[z1], y[z1], x[z2], y[z2], a, b, c);     dividing_locus(x[z], y[z], r[z], x[z1], y[z1], r[z1], s, t, u);     n = sqrt(a * a + b * b);     d = (a * s + b * t + c) / n;     if (d > u) return false;     xm = s - d * a / n;     ym = t - d * b / n;     e = sqrt(u * u - d * d);     xa1 = xm + e * b / n;     ya1 = ym - e * a / n;     xa2 = xm - e * b / n;     ya2 = ym + e * a / n;     d1 = (xa1 - x[z]) * (xa1 - x[z]) + (ya1 - y[z]) * (ya1 - y[z]);     d2 = (xa2 - x[z]) * (xa2 - x[z]) + (ya2 - y[z]) * (ya2 - y[z]);     if (d1 < d2) {       ansx = xa1;       ansy = ya1;     } else {       ansx = xa2;       ansy = ya2;     }     return true;   }   bool circle2circle() {     double a, b, c, d, f, e, s1, t1, u1, s2, t2, u2, xm, ym, xv, yv, xa1, xa2,         ya1, ya2, d1, d2;     dividing_locus(x[0], y[0], r[0], x[1], y[1], r[1], s1, t1, u1);     dividing_locus(x[0], y[0], r[0], x[2], y[2], r[2], s2, t2, u2);     xv = t2 - t1;     yv = s1 - s2;     d = xv * xv + yv * yv;     if ((u1 + u2) * (u1 + u2) < d || (u1 - u2) * (u1 - u2) > d) return false;     a = d + u1 * u1 - u2 * u2;     b = d - u1 * u1 + u2 * u2;     c = a + b;     a /= c;     b /= c;     xm = s1 * b + s2 * a;     ym = t1 * b + t2 * a;     d = sqrt(d);     xv /= d;     yv /= d;     f = (d * d + u1 * u1 - u2 * u2) / (2. * d);     e = fabs(sqrt(u1 * u1 - f * f));     xa1 = xm + e * xv;     ya1 = ym + e * yv;     xa2 = xm - e * xv;     ya2 = ym - e * yv;     d1 = (xa1 - x[0]) * (xa1 - x[0]) + (ya1 - y[0]) * (ya1 - y[0]);     d2 = (xa2 - x[0]) * (xa2 - x[0]) + (ya2 - y[0]) * (ya2 - y[0]);     if (d1 < d2) {       ansx = xa1;       ansy = ya1;     } else {       ansx = xa2;       ansy = ya2;     }     return true;   }   int main() {     bool exists;     for (int i = 0; i < 3; i++) {       cin >> x[i] >> y[i] >> r[i];     }     if (r[0] == r[1]) {       if (r[0] == r[2]) {         exists = line2line();       } else {         exists = line2circle(2);       }     } else {       if (r[0] == r[2]) {         exists = line2circle(1);       } else {         exists = circle2circle();       }     }     if (exists) {       cout << fixed << setprecision(5) << ansx <<     << ansy << endl;     }     return 0;   }