// NOT ME
#include <iostream>
#include <iomanip>
#include <algorithm>
using namespace std;
 
const int MAXN=40010;
int n;
struct Line {
  int a,b,c;
  int sequence=1;
  long double getY(long double x) const{
    long double cc=c-(long double)a*x;
    return cc/(long double)b;
  }
  long double getX(long double y) const{
    long double cc=c-(long double)b*y;
    return cc/(long double)a;
  }
}l[MAXN];
 
class tenka_e {
  bool chose;
  int BITa[MAXN];
  void add(int p) {
    for (int i=p; i<=n; i+=i&-i)
      BITa[i]++;
  }
  int sum(int p) {
    int result=0;
    for (int i=p;i>0;i-=i&-i)
      result+=BITa[i];
    return result;
  }
 
  static long double cc;
  static bool cmpY (const Line &a, const Line &b) {
    if (a.getY(cc) < b.getY(cc))
      return true;
    else if (a.getY(cc) == b.getY(cc))
      return a.sequence<b.sequence;
    return false;
  }
  static bool cmpX (const Line &a, const Line &b) {
    if (a.getX(cc) < b.getX(cc))
      return true;
    else if (a.getX(cc) == b.getX(cc))
      return a.sequence<b.sequence;
    return false;
  }
 
public:
  tenka_e(bool _chose) {
    this->chose = _chose;
    arrage(-200000000.0);
    for (int i=0;i<n;i++)
      l[i].sequence = i+1;
    /*
    cout<<"[DEBUG BEGIN]"<<endl;
    for (int i=0;i<n;i++)
      cout<<l[i].sequence<<" >>"<<l[i].a<<" "<<l[i].b<<" "<<l[i].c<<endl;
    */
  }
  int arrage(long double _cc) {
    cc = _cc;
    if (chose)
      sort(l,l+n,&cmpY);
    else
      sort(l,l+n,&cmpX);
    /*
    cout<<"Arrange Seq>>";
    for (int i=0;i<n;i++)
      cout<<l[i].sequence<<" ";
    cout<<endl;
    */
    int result = 0;
    memset(BITa,0,sizeof(BITa));
    for (int i=n-1;i>=0;i--) {
      add( l[i].sequence );
      result += sum(l[i].sequence-1);
    }
    return result;
  }
};
long double tenka_e::cc;
inline long double abs (long double a) {
  return a>=0?a:-a;
}
int main() {
  cin>>n;
  for (int i=0;i<n;i++)
    cin>>l[i].a>>l[i].b>>l[i].c;
  tenka_e* problem1 = new tenka_e(true);
  //X;
  //cout<<"left -> right"<<endl;
  long double left=-1000000000.0,right=1000000000.0;
  while (right-left>1e-10 && abs((right-left)/left)>1e-10) {
    long double middle = (left+right)/2.0;
    //cout << "["<<left<<", "<<right<<"] middle="<<middle<<endl;
    int leftnode = problem1->arrage(middle);
    int targetnode = ((n-1)*n/2 + 1)/2;
    //cout<<"Got "<<leftnode<<" Points. (Need "<<targetnode<<" )."<<endl;
    if (leftnode >= targetnode)
      right = middle;
    else
      left = middle;
  }
  long double res_x = (left+right)/2.0;
  //y;
  //cout<<"bottom -> up"<<endl;
  tenka_e* problem2 = new tenka_e(false);
  left=-1000000000.0,right=1000000000.0;
  while (right-left > 1e-10 && abs((right-left)/left)>1e-10) {
    long double middle = (left+right)/2.0;
    //cout << "["<<left<<", "<<right<<"] middle="<<middle<<endl;
    int leftnode = problem2->arrage(middle);
    int targetnode = ((n-1)*n/2 + 1)/2;
    //cout<<"Got "<<leftnode<<" Points. (Need "<<targetnode<<" )."<<endl;
    if (leftnode >= targetnode)
      right = middle;
    else
      left = middle;
  }
  long double res_y = (left+right)/2.0;
  cout<<setiosflags(ios::fixed)<<setprecision(10)<<res_x<<" "<<res_y<<endl;
  return 0;
}

Measured memory_bytes: 1152