#include<stdio.h>
#include<math.h>
#include<algorithm>
#include<queue>
#include<deque>
#include<string>
#include<string.h>
#include<vector>
#include<set>
#include<map>
#include<stdlib.h>
#include<cassert>
using namespace std;
const long long mod=1000000007;
const long long inf=mod*mod;
const long long d2=500000004;
const double EPS=1e-6;
const double PI=acos(-1.0);
int ABS(int a){return max(a,-a);}
long long ABS(long long a){return max(a,-a);}
int A[110000];
int B[110000];
int C[110000];
struct wolf{
	int a,b,c;
	wolf(){}
};
inline bool operator<(const wolf&a,const wolf&b){
	return a.a*b.b<a.b*b.a;
}
wolf p[110000];
pair<double,int> t[110000];
int n;
int bit[110000];
void add(int a,int b){
	for(;a<110000;a|=a+1)bit[a]+=b;
}
int sum(int a,int b){
	if(a)return sum(0,b)-sum(0,a-1);
	int ret=0;
	for(;b>=0;b=(b&(b+1))-1)ret+=bit[b];
	return ret;
}
long long chk(){
	for(int i=0;i<110000;i++)bit[i]=0;
	long long ret=0;
	for(int i=0;i<n;i++){
		ret+=sum(t[i].second,n-1);
		add(t[i].second,1);
	}
	return ret;
}
int main(){
	int a;scanf("%d",&a);n=a;
	for(int i=0;i<a;i++){
		scanf("%d%d%d",A+i,B+i,C+i);	
	}
	for(int I=0;I<2;I++){
		for(int i=0;i<a;i++){
			if(B[i]<0){
				A[i]=-A[i];
				B[i]=-B[i];
				C[i]=-C[i];
			}
		}
		for(int i=0;i<a;i++){
			p[i].a=A[i];
			p[i].b=B[i];
			p[i].c=C[i];
		}
		long long T=(long long)a*(a-1)/2;
		long long S=(T+1)/2;
 
		std::sort(p,p+a);
		double left=-mod;
		double right=mod;
		for(int i=0;i<70;i++){
			double M=(left+right)/2;
			for(int j=0;j<a;j++){
				t[j]=make_pair((p[j].c-p[j].a*M)/p[j].b,j);
			}
			std::sort(t,t+a);
			long long cnt=chk();
			if(cnt>=S){
				right=M;
			}else left=M;
		}
		printf("%.12f ",left);
		for(int i=0;i<a;i++){
			swap(A[i],B[i]);
		}
	}
}