#include <bits/stdc++.h>
using namespace std;
struct pt {
  double x, y;
};
struct line {
  double a, b, c;
  bool ok;
};
struct okr {
  pt o;
  double r;
};
double dist(pt a, pt b) {
  return sqrt((a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y));
}
double det(double a, double b, double c, double d) { return a * d - b * c; }
pt intersect_line(pt p1, pt p2, pt q1, pt q2) {
  double a1 = p1.y - p2.y;
  double b1 = p2.x - p1.x;
  double c1 = -a1 * p1.x - b1 * p1.y;
  double a2 = q1.y - q2.y;
  double b2 = q2.x - q1.x;
  double c2 = -a2 * q1.x - b2 * q1.y;
  pt cur;
  cur.x = -det(c1, b1, c2, b2) / det(a1, b1, a2, b2);
  cur.y = -det(a1, c1, a2, c2) / det(a1, b1, a2, b2);
  return cur;
}
pt middle(pt &a, pt &b) {
  pt cur;
  cur.x = a.x + (b.x - a.x) / 2;
  cur.y = a.y + (b.y - a.y) / 2;
  return cur;
}
line f(okr a, okr b) {
  line ans;
  if (a.r == b.r) {
    ans.a = 2 * (b.o.x - a.o.x);
    ans.b = 2 * (b.o.y - a.o.y);
    ans.c = a.o.x * a.o.x + a.o.y * a.o.y - b.o.x * b.o.x - b.o.y * b.o.y;
    ans.ok = false;
  } else {
    ans.a = (a.o.x * b.r * b.r - b.o.x * a.r * a.r) / (b.r * b.r - a.r * a.r);
    ans.b = (a.o.y * b.r * b.r - b.o.y * a.r * a.r) / (b.r * b.r - a.r * a.r);
    pt v, an;
    v.x = b.o.x - a.o.x;
    v.y = b.o.y - a.o.y;
    v.x *= a.r;
    v.y *= a.r;
    v.x /= (a.r + b.r);
    v.y /= (a.r + b.r);
    v.x += a.o.x;
    v.y += a.o.y;
    an.x = ans.a;
    an.y = ans.b;
    ans.c = dist(v, an);
    ans.ok = true;
  }
  return ans;
}
pair<pt, pt> inter_ln_ln(line a, line b) {
  double a1 = a.a;
  double b1 = a.b;
  double c1 = a.c;
  double a2 = b.a;
  double b2 = b.b;
  double c2 = b.c;
  pt cur, inf;
  inf.x = inf.y = 1e18;
  if (fabs(det(a1, b1, a2, b2)) < 1e-12) {
    return make_pair(inf, inf);
  }
  cur.x = -det(c1, b1, c2, b2) / det(a1, b1, a2, b2);
  cur.y = -det(a1, c1, a2, c2) / det(a1, b1, a2, b2);
  if (fabs(cur.x) < 1e-12) cur.x = 0;
  if (fabs(cur.y) < 1e-12) cur.y = 0;
  return make_pair(cur, cur);
}
pair<pt, pt> inter_ln_okr(line A, okr B) {
  pt cur, cur2;
  pt inf;
  inf.x = inf.y = 1e18;
  double r = B.r, a = A.a, b = A.b, c = A.c + a * B.o.x + b * B.o.y;
  double x0 = -a * c / (a * a + b * b), y0 = -b * c / (a * a + b * b);
  if (c * c > r * r * (a * a + b * b) + 1e-12) {
    return make_pair(inf, inf);
  }
  if (fabs(c * c - r * r * (a * a + b * b)) < 1e-12) {
    cur.x = x0;
    cur.y = y0;
    if (fabs(cur.x) < 1e-12) cur.x = 0;
    if (fabs(cur.y) < 1e-12) cur.y = 0;
    return make_pair(cur, cur);
  }
  double d = r * r - c * c / (a * a + b * b);
  double mult = sqrt(d / (a * a + b * b));
  double ax, ay, bx, by;
  ax = x0 + b * mult;
  bx = x0 - b * mult;
  ay = y0 - a * mult;
  by = y0 + a * mult;
  cur.x = ax + B.o.x;
  cur.y = ay + B.o.y;
  cur2.x = bx;
  cur2.y = by;
  if (fabs(cur2.x) < 1e-12) cur2.x = 0;
  if (fabs(cur2.y) < 1e-12) cur2.y = 0;
  return make_pair(cur, cur2);
}
pair<pt, pt> inter_okr_okr(okr a, okr b) {
  pt inf;
  inf.x = inf.y = 1e18;
  if (dist(a.o, b.o) + 1e-12 > a.r + b.r) {
    return make_pair(inf, inf);
  }
  if (dist(a.o, b.o) + min(a.r, b.r) + 1e-12 < max(a.r, b.r)) {
    return make_pair(inf, inf);
  }
  if (fabs(dist(a.o, b.o)) < 1e-12 && fabs(a.r - b.r) < 1e-12) {
    return make_pair(inf, inf);
  }
  line cur;
  double x = a.o.x, y = a.o.y;
  cur.a = -2 * (b.o.x - a.o.x);
  cur.b = -2 * (b.o.y - a.o.y);
  cur.c = (b.o.x - a.o.x) * (b.o.x - a.o.x) +
          (b.o.y - a.o.y) * (b.o.y - a.o.y) + a.r * a.r - b.r * b.r;
  a.o.x = 0;
  a.o.y = 0;
  pair<pt, pt> ans = inter_ln_okr(cur, a);
  ans.first.x += x;
  ans.second.x += x;
  ans.first.y += y;
  ans.second.y += y;
  if (fabs(ans.first.x) < 1e-12) ans.first.x = 0;
  if (fabs(ans.first.y) < 1e-12) ans.first.y = 0;
  if (fabs(ans.second.x) < 1e-12) ans.second.x = 0;
  if (fabs(ans.second.y) < 1e-12) ans.second.y = 0;
  return ans;
}
pair<pt, pt> fun(line a, line b) {
  if (!a.ok && !b.ok) return inter_ln_ln(a, b);
  if (a.ok && b.ok) {
    okr A, B;
    A.o.x = a.a;
    A.o.y = a.b;
    A.r = a.c;
    B.o.x = b.a;
    B.o.y = b.b;
    B.r = b.c;
    return inter_okr_okr(A, B);
  }
  if (a.ok) {
    okr A;
    A.o.x = a.a;
    A.o.y = a.b;
    A.r = a.c;
    return inter_ln_okr(b, A);
  }
  okr A;
  A.o.x = b.a;
  A.o.y = b.b;
  A.r = b.c;
  return inter_ln_okr(a, A);
}
double get_ang(pt a, okr b) {
  double d = dist(a, b.o);
  if (fabs(d) < 1e-12) return acos(-1.0);
  double ang = b.r / d;
  return atan(ang);
}
int main() {
  double x[4], y[4], r[4];
  okr o[4];
  line l1, l2;
  for (int i = 0; i < 3; i++) {
    cin >> x[i] >> y[i] >> r[i];
    o[i].o.x = x[i];
    o[i].o.y = y[i];
    o[i].r = r[i];
  }
  l1 = f(o[0], o[2]);
  l2 = f(o[1], o[2]);
  pair<pt, pt> ans;
  ans = fun(l1, l2);
  if (ans.first.x > 1e17 && ans.first.y > 1e17 && ans.second.x > 1e17 &&
      ans.second.y > 1e17) {
    return 0;
  }
  if (get_ang(ans.first, o[0]) < get_ang(ans.second, o[0]) + 1e-12) {
    printf("%.5lf %.5lf\n", ans.second.x, ans.second.y);
  } else {
    printf("%.5lf %.5lf\n", ans.first.x, ans.first.y);
  }
  return 0;
}
