#include <bits/stdc++.h>
using namespace std;
template <class T>
void checkmin(T &a, T b) {
  if (b < a) a = b;
}
template <class T>
void checkmax(T &a, T b) {
  if (b > a) a = b;
}
template <class T>
void out(T t[], int n) {
  for (int i = 0; i < int(n); ++i) cout << t[i] << " ";
  cout << endl;
}
template <class T>
void out(vector<T> t, int n = -1) {
  for (int i = 0; i < (n == -1 ? t.size() : n); ++i) cout << t[i] << " ";
  cout << endl;
}
inline int count_bit(int n) {
  return (n == 0) ? 0 : 1 + count_bit(n & (n - 1));
}
inline int low_bit(int n) { return (n ^ n - 1) & n; }
inline int ctz(int n) { return (n == 0 ? 0 : ctz(n >> 1) + 1); }
int toInt(string s) {
  int a;
  istringstream(s) >> a;
  return a;
}
string toStr(int a) {
  ostringstream os;
  os << a;
  return os.str();
}
string reverse(string &s) {
  int n = s.size();
  for (int i = 0; i < int(n / 2); ++i) s[i] = s[n - 1 - i];
  return s;
}
inline int isvalid(int i, int j, int H, int L) {
  return (i >= H || i < 0 || j >= L || j < 0) ? 0 : 1;
}
inline int doubleComare(double x, double y) {
  if (fabs(x - y) <= 1e-6) return 0;
  if (x < y) return -1;
  return 1;
}
double xi, yi, x[3], y[3], r[3], dis[3];
double chk(double a, double b) {
  double rt = 0;
  for (int i = 0; i < int(3); ++i)
    dis[i] = sqrt(((x[i] - a) * (x[i] - a)) + ((y[i] - b) * (y[i] - b)));
  for (int i = 0; i < int(3); ++i)
    rt += ((dis[i] / r[i] - dis[(i + 1) % 3] / r[(i + 1) % 3]) *
           (dis[i] / r[i] - dis[(i + 1) % 3] / r[(i + 1) % 3]));
  return rt;
}
int main() {
  for (int i = 0; i < int(3); ++i) cin >> x[i] >> y[i] >> r[i];
  double ra = 1;
  xi = (x[0] + x[1] + x[2]) / 3, yi = (y[0] + y[1] + y[2]) / 3;
  while (ra > 1e-6) {
    if (chk(xi, yi) > chk(xi - ra, yi))
      xi -= ra;
    else if (chk(xi, yi) > chk(xi + ra, yi))
      xi += ra;
    else if (chk(xi, yi) > chk(xi, yi - ra))
      yi -= ra;
    else if (chk(xi, yi) > chk(xi, yi + ra))
      yi += ra;
    else
      ra *= 0.5;
  }
  cout.precision(5);
  if (chk(xi, yi) < 1e-6) cout << fixed << xi << " " << yi << endl;
  return 0;
}
