#include <bits/stdc++.h>
using namespace std;
struct Node {
  double x, y, r;
} node[3];
double angle[3];
const double yray[4] = {-1, 0, 0, 1};
const double xray[4] = {0, -1, 1, 0};
double Squ(double x) { return x * x; }
double dis(double x1, double y1, double x2, double y2) {
  return sqrt(Squ(x1 - x2) + Squ(y1 - y2));
}
double Assessment(double x, double y) {
  for (int i = 0; i < 3; i++) {
    angle[i] = dis(x, y, node[i].x, node[i].y) / node[i].r;
  }
  double value = 0;
  for (int i = 0; i < 3; i++) {
    value += Squ(angle[i] - angle[(i + 1) % 3]);
  }
  return value;
}
int main() {
  double x = 0;
  double y = 0;
  for (int i = 0; i < 3; i++) {
    scanf("%lf%lf%lf", &node[i].x, &node[i].y, &node[i].r);
    x += node[i].x / 3;
    y += node[i].y / 3;
  }
  double out = Assessment(x, y);
  double step = 1;
  for (int i = 1; i <= 1e5; i++) {
    bool flag = 0;
    double x1, y1;
    for (int j = 0; j < 4; j++) {
      double xx = x + xray[j] * step;
      double yy = y + yray[j] * step;
      double vv = Assessment(xx, yy);
      if (vv < out) {
        out = vv;
        x1 = xx;
        y1 = yy;
        flag = 1;
      }
    }
    if (flag) {
      x = x1;
      y = y1;
    } else
      step /= 2;
  }
  if (out < 1e-5) {
    printf("%.5lf %.5lf\n", x, y);
  }
  return 0;
}
