#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;
}
