#include <bits/stdc++.h>
using namespace std;
struct Point {
  double x, y;
  Point(double x = 0, double y = 0) : x(x), y(y) {}
  Point operator-(const Point &a) const { return Point(x - a.x, y - a.y); }
  Point operator+(const Point &a) const { return Point(x + a.x, y + a.y); }
  Point operator/(const double &a) const { return Point(x / a, y / a); }
  void read() { cin >> x >> y; }
};
double Length(Point a) { return sqrt(a.x * a.x + a.y * a.y); }
double dis(Point now, Point p, double r) { return Length(now - p) / r; }
double r1, r2, r3;
Point p1, p2, p3;
double wuca(Point now) {
  double d1 = dis(now, p1, r1), d2 = dis(now, p2, r2), d3 = dis(now, p3, r3);
  double ans =
      (d1 - d2) * (d1 - d2) + (d2 - d3) * (d2 - d3) + (d3 - d1) * (d3 - d1);
  return ans;
}
void solve() {
  p1.read();
  cin >> r1;
  p2.read();
  cin >> r2;
  p3.read();
  cin >> r3;
  double t = 1;
  Point now = (p1 + p2 + p3) / 3;
  while (t > 1e-5) {
    double noww = wuca(now);
    if (wuca(Point(now.x + t, now.y)) < noww)
      now.x += t;
    else if (wuca(Point(now.x - t, now.y)) < noww)
      now.x -= t;
    else if (wuca(Point(now.x, now.y + t)) < noww)
      now.y += t;
    else if (wuca(Point(now.x, now.y - t)) < noww)
      now.y -= t;
    else
      t /= 2;
  }
  if (wuca(now) <= 1e-5) printf("%.6lf %.6lf\n", now.x, now.y);
}
int main() {
  solve();
  int mk;
  if (scanf("%d", &mk) == EOF) return 0;
  return 0;
}
