#include <bits/stdc++.h>

using namespace std;

typedef long long LL;
typedef pair<int , int> P2;
typedef pair<pair<int , int> , int> P3;
typedef pair<pair<int , int> , pair<int , int> > P4;
#define PB(a) push_back(a)
#define MP(a , b) make_pair((a) , (b))
#define M3P(a , b , c) make_pair(make_pair((a) , (b)) , (c))
#define M4P(a , b , c , d) make_pair(make_pair((a) , (b)) , make_pair((c) , (d)))
#define repp(i,a,b) for(int i = (int)(a) ; i < (int)(b) ; ++i)
#define repm(i,a,b) for(int i = (int)(a) ; i > (int)(b) ; --i)

const int BIT_MAX = 40010;

template <class T> class BIT{
	T x[BIT_MAX + 1];
	
public:
	
	void dft(){
		fill(x,x+BIT_MAX+1,0);
	}
	
	void add(int a , T b){
		++a;
		for(; a <= BIT_MAX ; a += a & -a) x[a] += b;
	}
	
	T get(int a){
		++a;
		T b = 0;
		for(; a > 0 ; a -= a & -a) b += x[a];
		return b;
	}
};

const int MC = 40010;
int N;
int A[MC],B[MC],C[MC];
int s[MC];
double t[MC];
int u[MC];
BIT<int> bit;

bool eval(double z){
	repp(i,0,N) t[s[i]] = (C[s[i]] - A[s[i]] * z) / B[s[i]];
	sort(u,u+N,[&](const int p , const int q){return t[s[p]] < t[s[q]];});
	int w = 0;
	bit.dft();
	repp(i,0,N){
		w += bit.get(u[i]);
		bit.add(0,1);
		bit.add(u[i]+1,-1);
	}
	return w < (N * (N-1) / 2 + 1) / 2;
}

double BS(double x , double y , int t){
	double z = (x+y)/2;
	if(t == 0) return z;
	return eval(z) ? BS(z,y,t-1) : BS(x,z,t-1);
}

double solve(){
	sort(s,s+N,[&](const int p , const int q){return 1. * A[p] / B[p] < 1. * A[q] / B[q];});
	return BS(-1e9 , 1e9 , 100);
}

int main(){
	scanf("%d" , &N);
	repp(i,0,N){
		scanf("%d%d%d" , A+i , B+i , C+i);
		s[i] = i;
		u[i] = i;
	}
	double x = solve();
	repp(i,0,N) swap(A[i],B[i]);
	double y = solve();
	printf("%.12f %.12f\n" , x , y);
	return 0;
}
