#include <bits/stdc++.h>
#define rep(i, a, b) for(ll i = ll(a); i < ll(b); i++)
#define rer(i, a, b) for(ll i = ll(a) - 1; i >= ll(b); i--)
#define sz(v) (int)(v).size()
#define pb push_back
#define sc second
#define fr first
#define sor(v) sort(v.begin(),v.end())
#define rev(s) reverse(s.begin(),s.end())
#define lb(vec,a) lower_bound(vec.begin(),vec.end(),a)
#define ub(vec,a) upper_bound(vec.begin(),vec.end(),a)
#define uniq(vec) vec.erase(unique(vec.begin(),vec.end()),vec.end())
using namespace std;
typedef long long int ll;
typedef pair <double, double> P;

const ll MOD=1000000007;
const int MAX_N=4e4; //変える
int N;
struct BIT{
    //1-indexed
    int bit[MAX_N+1];
    
    void init(){
        memset(bit, 0, sizeof(bit));
    }
    
    int sum(int i){
        int s=0;
        while(i>0){
            s+=bit[i];
            i-=i&-i;
        }
        return s;
    }
    
    void add(int i, int x){
        while(i<=N){
            bit[i]+=x;
            i+=i&-i;
        }
    }
};
ll calc(vector<double> x){
    vector<P> y;
    rep(i,0,sz(x)){
        y.pb(P(x[i],i));
    }
    sor(y);
    rep(i,0,sz(x)){
        x[y[i].sc]=i+1;
    }
    BIT b;
    b.init();
    ll ans=0;
    rep(i,0,N){
        ans+=i-b.sum(x[i]);
        b.add(x[i],1);
    }
    return ans;
}
int main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    cin>>N;
    double A[N], B[N], C[N];
    rep(i,0,N){
        cin>>A[i]>>B[i]>>C[i];
    }
    vector<P> v;
    rep(i,0,N){
        v.pb(P((C[i]+B[i]*(3e8))/A[i],i));
    }
    sor(v);
    double ylb=-2e8-1, yub=2e8+1;
    rep(Z,0,60){
        double mid=(ylb+yub)/2;
        vector<double> q;
        rep(i,0,N){
            ll j=v[i].sc;
            q.pb((C[j]-B[j]*mid)/A[j]);
        }
        if(calc(q)>=(N*(N-1)/2+1)/2) yub=mid;
        else ylb=mid;
    }
    v.clear();
    rep(i,0,N){
        v.pb(P((C[i]+A[i]*(3e8))/B[i],i));
    }
    sor(v);
    double xlb=-2e8-1, xub=2e8+1;
    rep(Z,0,60){
        double mid=(xlb+xub)/2;
        vector<double> q;
        rep(i,0,N){
            ll j=v[i].sc;
            q.pb((C[j]-A[j]*mid)/B[j]);
        }
        if(calc(q)>=(N*(N-1)/2+1)/2) xub=mid;
        else xlb=mid;
    }
    cout << setprecision(15)<<xlb<<" "<<yub<<"\n";
}