#include <bits/stdc++.h>
using namespace std;
struct nod {
  double x, y, r;
} c[3];
double ang[3];
const int dy[4] = {-1, 0, 0, 1};
const int dx[4] = {0, -1, 1, 0};
double po(double x) { return x * x; }
double dis(double x, double y, double xx, double yy) {
  return sqrt(po(x - xx) + po(y - yy));
}
double val(double x, double y) {
  for (int i = 0; i < 3; ++i) ang[i] = dis(x, y, c[i].x, c[i].y) / c[i].r;
  double v = 0;
  for (int i = 0; i < 3; ++i) v += po(ang[i] - ang[(i + 1) % 3]);
  return v;
}
int main() {
  double x = 0, y = 0;
  for (int i = 0; i < 3; i++) {
    scanf("%lf%lf%lf", &c[i].x, &c[i].y, &c[i].r);
    x += c[i].x / 3;
    y += c[i].y / 3;
  }
  double err = val(x, y);
  double step = 1;
  for (int tim = 1; tim <= 1e5; ++tim) {
    bool flag = 0;
    double X, Y;
    for (int i = 0; i < 4; ++i) {
      double xx = x + dx[i] * step, yy = y + dy[i] * step;
      double v = val(xx, yy);
      if (v < err) {
        err = v;
        flag = 1;
        X = xx;
        Y = yy;
      }
    }
    if (flag) {
      x = X;
      y = Y;
    } else
      step /= 2;
  }
  if (err < 1e-6) printf("%.5lf %.5lf\n", x, y);
  return 0;
}
