#include <bits/stdc++.h>
using namespace std;
pair<double, double> a[3];
double r[3];
inline void find_circle(pair<double, double> a, double r1,
                        pair<double, double> b, double r2,
                        pair<double, double> &ans, double &rans) {
  double l = sqrt((a.first - b.first) * (a.first - b.first) +
                  (a.second - b.second) * (a.second - b.second));
  double k = r1 / (r1 + r2);
  pair<double, double> p1 = make_pair(a.first + k * (b.first - a.first),
                                      a.second + k * (b.second - a.second));
  pair<double, double> p2;
  if (r1 < r2) {
    k = r1 / (r2 - r1);
    p2 = make_pair(a.first - k * (b.first - a.first),
                   a.second - k * (b.second - a.second));
  } else {
    k = r2 / (r1 - r2);
    p2 = make_pair(b.first + k * (b.first - a.first),
                   b.second + k * (b.second - a.second));
  }
  ans = make_pair((p1.first + p2.first) / 2., (p1.second + p2.second) / 2.);
  rans = sqrt((p1.first - p2.first) * (p1.first - p2.first) +
              (p1.second - p2.second) * (p1.second - p2.second)) /
         2.;
}
int main() {
  for (int(i) = 0; (i) < (3); ++(i)) cin >> a[i].first >> a[i].second >> r[i];
  if (r[0] == r[1] && r[1] == r[2]) {
    double a1 = a[1].first - a[0].first;
    double b1 = a[1].second - a[0].second;
    double c1 = -(a1 * (a[0].first + a[1].first) / 2. +
                  b1 * (a[0].second + a[1].second) / 2.);
    double a2 = a[2].first - a[0].first;
    double b2 = a[2].second - a[0].second;
    double c2 = -(a2 * (a[0].first + a[2].first) / 2. +
                  b2 * (a[0].second + a[2].second) / 2.);
    double first = (c2 * b1 - c1 * b2) / (b2 * a1 - b1 * a2);
    double second = (c2 * a1 - c1 * a2) / (b1 * a2 - b2 * a1);
    printf("%0.9f %0.9f\n", first, second);
    return 0;
  }
  if (r[0] == r[1]) {
    swap(r[0], r[2]);
    swap(a[0], a[2]);
  }
  if (r[0] == r[2]) {
    swap(r[0], r[1]);
    swap(a[0], a[1]);
  }
  pair<double, double> p;
  double r1;
  find_circle(a[0], r[0], a[1], r[1], p, r1);
  pair<double, double> q;
  double r2;
  find_circle(a[0], r[0], a[2], r[2], q, r2);
  double d = sqrt((p.first - q.first) * (p.first - q.first) +
                  (p.second - q.second) * (p.second - q.second));
  if (d > r1 + r2 + 1e-9 || d < max(r1, r2) - min(r1, r2) - 1e-9) return 0;
  double dx = (r1 * r1 + d * d - r2 * r2) / (d * 2.);
  pair<double, double> mid =
      make_pair(p.first + dx / d * (q.first - p.first),
                p.second + dx / d * (q.second - p.second));
  pair<double, double> up =
      make_pair(-(q.second - p.second) / d * sqrt(r1 * r1 - dx * dx),
                (q.first - p.first) / d * sqrt(r1 * r1 - dx * dx));
  pair<double, double> a1 =
      make_pair(mid.first + up.first, mid.second + up.second);
  pair<double, double> a2 =
      make_pair(mid.first - up.first, mid.second - up.second);
  double d1 = (a1.first - a[0].first) * (a1.first - a[0].first) +
              (a1.second - a[0].second) * (a1.second - a[0].second);
  double d2 = (a2.first - a[0].first) * (a2.first - a[0].first) +
              (a2.second - a[0].second) * (a2.second - a[0].second);
  if (d1 > d2) a1 = a2;
  printf("%0.9f %0.9f\n", a1.first, a1.second);
  return 0;
}
