#include <bits/stdc++.h>
using namespace std;

typedef pair<int, int> pii;
typedef long long ll;
template<class T> using V = vector<T>;
template<class T> using VV = V<V<T>>;

#define pb push_back
#define eb emplace_back
#define mp make_pair
#define fi first
#define se second
#define rep(i,n) rep2(i,0,n)
#define rep2(i,m,n) for(int i=m;i<(n);i++)
#define ALL(c) (c).begin(),(c).end()
#define dump(x) cerr << #x << " = " << (x) << endl
constexpr ll TEN(int n) { return (n == 0) ? 1 : 10 * TEN(n-1); }

template<class T, class U> void chmin(T& t, const U& u) { if (t > u) t = u; }
template<class T, class U> void chmax(T& t, const U& u) { if (t < u) t = u; }

template<class T, class U>
ostream& operator<<(ostream& os, const pair<T, U>& p) {
	os<<"("<<p.first<<","<<p.second<<")";
	return os;
}

template<class T>
ostream& operator<<(ostream& os, const vector<T>& v) {
	os<<"{";
	rep(i, v.size()) {
		if (i) os<<",";
		os<<v[i];
	}
	os<<"}";
	return os;
}

const int MN = 40010;

template<class T>
class BIT {
	T bit[MN];
	int n;

public:
	BIT() {
		n = MN;
		memset(bit, 0, sizeof(bit));
	}

	T sum(int i) {
		++i;
		T s = 0;
		while (i > 0) {
			s += bit[i];
			i -= i & -i;
		}
		return s;
	}

	void add(int i, T x) {
		++i;
		while (i < n) {
			bit[i] += x;
			i += i & -i;
		}
	}
};

typedef long double R;

const R eps = 1e-12;

int main() {
	int N; cin >> N;
	V<pair<pii,int>> vec(N);

	rep(i, N) {
		int A, B, C;
		cin >> A >> B >> C;
		vec[i] = mp(mp(A, B), C);
	}

	int num = (N*(N-1)/2+1)/2; 

	R sx, sy;

	rep(_, 2) {
		sort(ALL(vec), [&](const pair<pii,int> &p, const pair<pii,int> &q) {
			return -(R)p.fi.fi / p.fi.se > -(R)q.fi.fi / q.fi.se;
		});

		R lo = -2e9, hi = 2e9;

		rep(tt, 100) {
			R x = lo + (hi - lo) / 2;

			BIT<int> T;
			V<R> pos(N), ps;
			rep(i, N) {
				pos[i] = (vec[i].se - vec[i].fi.fi * x) / vec[i].fi.se;
			}
			ps = pos;
			sort(ALL(ps));

			int s = 0;
			rep(i, N) {
				int p = lower_bound(ALL(ps), pos[i] - eps) - ps.begin();
				s += i - T.sum(p);
				T.add(p, 1);
			}
			if (s >= num) {
				hi = x;
			} else {
				lo = x;
			}
		}
		if (_ == 0) {
			sy = lo;
		} else {
			sx = lo;
		}

		rep(i, N) swap(vec[i].fi.fi, vec[i].fi.se);
	}

	printf("%.10Lf %.10Lf\n", sy, sx);

	return 0;
}