#include"bits/stdc++.h"
 
using namespace std;
 
#define MAX 40004
 
int n;
 
 
long double A[MAX];
long double B[MAX];
 
vector<pair<double, double> > v;
 
vector<pair<long double, long double > > mp;
 
struct BIT {
	vector<int> bit;
	void resize(int N) {
		bit.assign(N, 0);
	}
	void add(int i, int j) {
		i++;
		while (i < bit.size()) {
			bit[i] += j;
			i += i&-i;
		}
	}
	int sum(int i) {
		int r = 0;
		i++;
		while (i) {
			r += bit[i];
			i -= i&-i;
		}
		return r;
	}
	int rng(int lef, int rig) {
		int F = sum(rig);
		if (lef) {
			F -= sum(lef - 1);
		}
		return F;
	}
};
BIT b;
 
map<long double, int> mpp;
int ord[MAX];
 
int cnt_lef(long double X) {
	b.resize(n + 1);
	mp.clear();
	for (int i = 0; i < n; i++) {
		mp.push_back({ A[i] * X + B[i],ord[i] } );
	}
	sort(mp.begin(), mp.end());
	int same = 0;
	int rig = 0;
	double pr = -114;
	int conc = 0;
	for (auto it = mp.rbegin(); it != mp.rend(); it++) {
		if ((*it).first == pr) {
			conc++;
		}
		else {
			conc = 1;
			pr = (*it).first;
		}
		same += conc-1;
		rig += b.sum((*it).second - 1);
		b.add((*it).second, 1);
	}
	int lef = n*(n - 1) / 2 - same - rig;
	return rig - lef;
}
 
double solve() {
	mpp.clear();
	for (int i = 0; i < n; i++) {
		mpp[A[i]] = 0;
	}
	int cc = 0;
	for (auto it = mpp.begin(); it != mpp.end(); it++) {
		(*it).second = cc;
		cc++;
	}
	for (int i = 0; i < n; i++) {
		ord[i] = mpp[A[i]];
	}
	long double mint = -199999999;
	long double maxt = 199999999;
	long double EP = 1e-9;
	while (mint + EP < maxt) {
		long double mid = (mint + maxt) / (long double)2.0;
		int flag = cnt_lef(mid);
		if (flag <= 0) {
			maxt = mid;
		}
		else {
			mint = mid;
		}
	}
	return mint;
}
int main() {
	cin >> n;
	for (int i = 0; i < n; i++) {
		int a, b, c;
		scanf("%d%d%d", &a, &b, &c);
		A[i] = (long double)(a) / (long double)(b);
		B[i] = -(long double)(c) / (long double)(b);
	}
	double X = solve();
	for (int i = 0; i < n; i++) {
		pair<long double, long double> p = make_pair(0, B[i]);
		pair<long double, long double> p2 = make_pair(1, A[i] + B[i]);
		swap(p.first, p.second);
		swap(p2.first, p2.second);
		p.first *= -1.0;
		p2.first *= -1.0;
		A[i] = (p2.second - p.second) / (p2.first - p.first);
		B[i] = p.second - A[i] * p.first;
	}
	double Y = solve();
	printf("%.16f %.16f\n", X, Y);
	return 0;
}