#include "bits/stdc++.h"

using namespace std;

#define pb push_back
#define mp make_pair
constexpr int INF = 1 << 29;
constexpr int MOD = 1000000007;
typedef long long ll;
typedef unsigned long long ull;

constexpr int dx[4] = {1, 0, -1, 0};
constexpr int dy[4] = {0, 1, 0, -1};

struct Line {
	double a, b, c;
};

struct BIT {
	int N;
	vector<int> bit;
	BIT(int n) : N(n), bit(N + 1){}
	void add(int a, int w) {
		for(int x = a; x < N; x |= x + 1) {
			bit[x] += w;
		}
	}
	int sum(int a) {
		int ret = 0;
		for(int x = a - 1; x >= 0; x = (x & (x + 1)) - 1) {
			ret += bit[x];
		}
		return ret;
	}
};

ll getTransNum(vector<int> &r) {
	BIT bit(r.size());
	ll ret = 0;
	for(int i = 0; i < r.size(); i++) {
		ret += i - bit.sum(r[i]);
		bit.add(r[i], 1);
	}
	return ret;
}

bool ok(vector<Line> &L, double c, bool vertical) {
	vector<pair<double, int>> L_c;
	if (vertical) {
		for (int i = 0; i < L.size(); i++) {
			// Ax+By=C
			// By=C-Ax
			// y=(C-Ax)/B
			double y = (L[i].c - L[i].a * c) / L[i].b;
			L_c.push_back(mp(y, i));
		}
	} else {
		for (int i = 0; i < L.size(); i++) {
			// Ax+By=C
			// Ax=C-By
			// x=(C-By)/A
			double x = (L[i].c - L[i].b * c) / L[i].a;
			L_c.push_back(mp(x, i));
		}
	}

	sort(L_c.begin(), L_c.end());
	vector<int> r;
	for (int i = 0; i < L_c.size(); i++) {
		r.push_back(L_c[i].second);
		//cout << i << ": (" << L_c[i].first << ", " << L_c[i].second << ")" << endl; 
	}

	ll n = getTransNum(r);
	int minn = L.size() * (L.size() - 1) / 2;
	if (minn % 2 == 0) {
		minn = minn / 2;
	} else {
		minn = minn / 2 + 1;
	}
	return n >= minn;
}

int main() {
	int N;
	cin >> N;
	vector<Line> L;
	for (int i = 0; i < N; i++) {
		double a, b, c;
		cin >> a >> b >> c;
		L.push_back((Line){a, b, c});
	}
	vector<Line> L_x = L;
	vector<Line> L_y = L;
	sort(L_x.begin(), L_x.end(), [](Line &lhs, Line &rhs){return lhs.a / lhs.b < rhs.a / rhs.b;});
	sort(L_y.begin(), L_y.end(), [](Line &lhs, Line &rhs){return lhs.b / lhs.a < rhs.b / rhs.a;});

	double ans_x, ans_y;
	double a = -1e30;
	double b = 1e30;
	//cout << L_x.size() * (L_x.size() - 1) / 4 << endl;
	for (int i = 0; i < 200; i++) {
		double c = (a + b) / 2;
		//cout << "a: " << a << ", b: " << b << endl;
		if (ok(L_x, c, true)) { // 交点 >= N * (N - 1) / 4
			b = c;
		} else {
			a = c;
		}
	}
	ans_x = b;
	
	a = -1e30, b = 1e30;
	for (int i = 0; i < 200; i++) {
		double c = (a + b) / 2;
		if (ok(L_y, c, false)) { // 交点 >= N * (N - 1) / 4
			b = c;
		} else {
			a = c;
		}
	}
	ans_y = b;

	printf("%.9f %.9f\n", ans_x, ans_y);
	return 0;
}

