#include<bits/stdc++.h>
using namespace std;
using Int = long long;

struct Precision{
  Precision(){
    cout<<fixed<<setprecision(12);
  }
}precision_beet;


template<typename T> 
struct BIT{
  Int n;
  vector<T> bit;
  //1-indexed
  BIT():n(-1){}
  BIT(Int n_,T d):n(n_),bit(n_+1,d){}
  
  T sum(Int i){
    T s=0;
    for(Int x=i;x>0;x-=(x&-x))
      s+=bit[x];
    return s;
  }
  void add(Int i,T a){
    if(i==0) return;
    for(Int x=i;x<=n;x+=(x&-x))
      bit[x]+=a;
  }
  
  Int lower_bound(Int w){
    if(w<=0) return 0;
    Int x=0,r=1;
    while(r<n) r<<=1;
    for(Int k=r;k>0;k>>=1){
      if(x+k<=n&&bit[x+k]<w){
	w-=bit[x+k];
	x+=k;
      }
    }
    return x+1;
  }
  
  T sum0(Int i){
    return sum(i+1);
  }
  void add0(Int i,T a){
    add(i+1,a);
  }
};

//INSERT ABOVE HERE
signed main(){
  Int n;
  cin>>n;
  vector<double> a(n),b(n),c(n);
  for(Int i=0;i<n;i++) cin>>a[i]>>b[i]>>c[i];

  vector<Int> ord(n);
  iota(ord.begin(),ord.end(),0);
  
  Int s=n*(n-1)/2;
  double ax=0,ay=0;

  for(Int t=0;t<2;t++){    
    
    auto count=[&](double x)->Int{
      vector<double> u(n);
      for(Int i=0;i<n;i++)
	u[i]=-(a[ord[i]]*x-c[ord[i]])/b[ord[i]];
      vector<double> v(u);
      sort(v.rbegin(),v.rend());
      v.erase(unique(v.begin(),v.end()),v.end());
      map<double, Int> idx;
      for(Int i=0;i<(Int)v.size();i++) idx[v[i]]=i;
      
      BIT<Int> bit(n+10,0);
      Int cnt=0;
      for(Int i=0;i<n;i++){
	cnt+=bit.sum0(idx[u[i]]);
	bit.add0(idx[u[i]],1);
	if(cnt>=(s+1)/2) return cnt;
      }
      return cnt;
    };
    
    sort(ord.begin(),ord.end(),
	 [&](Int i,Int j){return a[i]/b[i]<a[j]/b[j];});
    double l=-1e9,r=1e9;
    for(Int k=0;k<70;k++){
      double m=(l+r)/2;
      if(count(m)>=(s+1)/2) r=m;
      else l=m;
    }
    ax=l;
    swap(a,b);
    swap(ax,ay);
  }
  
  cout<<ax<<" "<<ay<<endl;
  return 0;
}
