#include <bits/stdc++.h>
#define rep(i,l,r) for (int i=l,i##end=r;i<=i##end;++i)
#define per(i,r,l) for (int i=r,i##end=l;i>=i##end;--i)
#define rep0(i,r) for (int i=0,i##end=r;i<i##end;++i)
#define pr pair<db,int>
#define mp make_pair
#define fi first
#define se second
#define db long double
using namespace std;
const int N=1e6+6; const db eps=1e-10,INF=1e18;
struct line{ db k,b; }l[N];
bool cmp(line l1,line l2){ return l1.k>l2.k; }
pr a[N]; int C[N],n;
void add(int x){ for (;x<=n;x+=x&-x) ++C[x]; }
int sum(int x){ int s=0; for (;x;x-=x&-x) s+=C[x]; return s; }
db solve(){
    sort(l+1,l+1+n,cmp);
    db p=-INF,q=INF;
    while (q-p>eps){
        db m=(p+q)/2;
        rep(i,1,n) a[i]=mp(l[i].k*m+l[i].b,i);
        sort(a+1,a+1+n);
        rep(i,1,n) C[i]=0;
        int c=0;
        per(i,n,1) c+=sum(a[i].se),add(a[i].se);
        if (2*c>=n*(n-1)/2) q=m;
        else p=m;
    }
    return q;
}
int main(){
    scanf("%d",&n);
    rep(i,1,n){
        db a,b,c; scanf("%Lf%Lf%Lf",&a,&b,&c);
        if (c) a/=c,b/=c,l[i].k=-a/b,l[i].b=1/b;
        else l[i].k=-a/b;
    }
    printf("%.10Lf ",solve());
    rep(i,1,n) l[i].b/=-l[i].k,l[i].k=1/l[i].k;
    printf("%.10Lf\n",solve());
    return 0;
}
