#include <bits/stdc++.h>
const double eps = 1e-5;
double Dot(std::pair<double, double> a, std::pair<double, double> b) {
  return a.first * b.first + a.second * b.second;
}
double Length(std::pair<double, double> a, std::pair<double, double> b) {
  std::pair<double, double> c =
      std::make_pair(a.first - b.first, a.second - b.second);
  return sqrt(Dot(c, c));
}
double sqr(double x) { return x * x; }
std::pair<double, double> p[5];
double R[5];
double check(std::pair<double, double> a) {
  double ans = 0;
  double t[3];
  for (int i = 0; i < 3; i++) {
    t[i] = Length(a, p[i]) / R[i];
  }
  for (int i = 0; i < 3; i++) {
    ans += sqr(t[i] - t[(i + 1) % 3]);
  }
  return ans;
}
int dx[] = {1, 1, 1, -1, -1, -1, 0, 0};
int dy[] = {-1, 0, 1, 1, -1, 0, 1, -1};
int main() {
  while (std::cin >> p[0].first >> p[0].second >> R[0] >> p[1].first >>
         p[1].second >> R[1] >> p[2].first >> p[2].second >> R[2]) {
    std::pair<double, double> ans =
        std::make_pair((p[0].first + p[1].first + p[2].first) / 3,
                       (p[0].second + p[1].second + p[2].second) / 3);
    double delta = 50;
    double ret = check(ans);
    while (fabs(delta) > eps) {
      int id = -1;
      for (int i = 0; i < 8; i++) {
        std::pair<double, double> pp = std::make_pair(
            ans.first + delta * dx[i], ans.second + delta * dy[i]);
        double tt = check(pp);
        if (ret > tt) {
          ret = tt;
          id = i;
        }
      }
      if (id != -1) {
        ans.first += delta * dx[id];
        ans.second += delta * dy[id];
      }
      delta *= 0.9;
    }
    if (fabs(ret) < eps) {
      printf("%.10lf %.10lf\n", ans.first, ans.second);
    }
  }
  return 0;
}
