#include <bits/stdc++.h>
using namespace std;
const double EPS = 1e-8;
const double PI = acos(-1.0);
inline int sgn(double x) { return x < -EPS ? -1 : x > EPS; }
inline double sqr(double x) { return x * x; }
inline void up(int &a, int b) {
  if (a < b) a = b;
}
inline void up(double &a, double b) {
  if (a < b) a = b;
}
inline void down(int &a, int b) {
  if (a > b) a = b;
}
inline void down(double &a, double b) {
  if (a > b) a = b;
}
struct point {
  double x, y;
  point() {}
  point(const double &_x, const double &_y) : x(_x), y(_y) {}
  bool operator==(const point &rhs) const {
    return sgn(x - rhs.x) == 0 && sgn(y - rhs.y) == 0;
  }
  bool operator!=(const point &rhs) const {
    return sgn(x - rhs.x) || sgn(y - rhs.y);
  }
  bool operator<(const point &rhs) const {
    return x + EPS < rhs.x || x < rhs.x + EPS && y + EPS < rhs.y;
  }
  point operator+(const point &rhs) const {
    return point(x + rhs.x, y + rhs.y);
  }
  point operator-(const point &rhs) const {
    return point(x - rhs.x, y - rhs.y);
  }
  point operator*(const double &k) const { return point(x * k, y * k); }
  point operator/(const double &k) const { return point(x / k, y / k); }
  double len2() const { return x * x + y * y; }
  double len() const { return sqrt(x * x + y * y); }
  point tolen(const double &to) const { return (*this) * (to / len()); }
  point turn_left() const { return point(-y, x); }
  point turn_right() const { return point(y, -x); }
  void read() { scanf("%lf%lf", &x, &y); }
  void print() { printf("%.5f %.5f\n", x, y); }
};
const int N = 3;
int n;
point p[N], q;
double r[N];
double step;
double f;
inline double func(point x) {
  double s0 = (x - p[0]).len() / r[0];
  double s1 = (x - p[1]).len() / r[1];
  double s2 = (x - p[2]).len() / r[2];
  double ave = (s0 + s1 + s2) / 3.0;
  return (sqr(s0 - ave) + sqr(s1 - ave) + sqr(s2 - ave)) / 3.0;
}
void burn() {
  point t;
  for (int i = 0; i < 100; i++) {
    t.x = q.x + step * cos(rand() / 1.234);
    t.y = q.y + step * sin(rand() / 1.234);
    double g = func(t);
    if (g < f) {
      f = g;
      q = t;
    }
  }
}
int main() {
  for (int i = 0; i < 3; i++) {
    p[i].read();
    scanf("%lf", r + i);
  }
  q = (p[0] + p[1] + p[2]) / 3.0;
  step = (q - p[0]).len();
  down(step, (q - p[1]).len());
  down(step, (q - p[2]).len());
  f = func(q);
  while (step > 1e-7) {
    burn();
    step *= 0.997;
  }
  if (func(q) < 1e-3) q.print();
  return 0;
}
