#include <bits/stdc++.h>

#if MYDEBUG
#include "lib/cp_debug.hpp"
#else
#define DBG(...) ;
#endif
#if __cplusplus <= 201402L
template <typename T>
T gcd(T a, T b) { return ((a % b == 0) ? b : gcd(b, a % b)); }
template <typename T>
T lcm(T a, T b) { return a / gcd(a, b) * b; }
#endif
using LL = long long;
constexpr LL LINF = 334ll << 53;
constexpr int INF = 15 << 26;
constexpr LL MOD = 1E9 + 7;
//https://beta.atcoder.jp/contests/tenka1-2017/tasks/tenka1_2017_e

namespace Problem {
using namespace std;
struct Line {
  double a, b, c;
};
struct FindX {
  double operator()(Line &l, double y) {
    return (l.c - l.b * y) / l.a;
    //return (b.b * a.c - a.b * b.c) / (b.b * a.a - a.b * b.a);
  }
};
struct FindY {
  double operator()(Line &l, double x) {
    return (l.c - l.a * x) / l.b;
    //return (-b.a * a.c + a.a * b.c) / (b.b * a.a - a.b * b.a);
  }
};
struct sortByMinX {
  bool operator()(Line &a, Line &b) { return -a.a / a.b > -b.a / b.b; }
};
struct sortByMinY {
  bool operator()(Line &a, Line &b) { return -a.b / a.a > -b.b / b.a; }
};
template <typename T>
struct BIT {
  vector<T> bit;
  int size;
  BIT(int _size) : bit(vector<T>(_size + 1, 0)), size(_size) {}
  void add(int index, T value) {
    for (int i = index + 1; i <= size; i += (i & -i)) bit[i] += value;
  }
  T sum(int a, int b) {  //sum of[a,b)
    return sum(b) - sum(a);
  }
  T sum(int a) {  // sum of[0,a) = sum of bit[0]~bit[a]
    T ret = 0;
    for (int i = a; i > 0; i -= (i & -i)) ret += bit[i];
    return ret;
  }
};
class Solver {
 public:
  int n;
  vector<Line> line;
  Solver(LL n) : n(n), line(n){};

  void solve() {
    for (int i = 0; i < n; ++i) {
      cin >> line[i].a >> line[i].b >> line[i].c;
    }
    cout << binarySearch<FindY, sortByMinX>() << ' ' << binarySearch<FindX, sortByMinY>() << endl;
  }
  template <class Calc, class S>
  double binarySearch() {
    Calc op;
    sort(line.rbegin(), line.rend(), S());
    double lb = -1e9, ub = 1e9;
    for (int i = 0; i < 80; ++i) {
      double mid = (lb + ub) / 2;
      vector<pair<double, int>> coord;
      for (int j = 0; j < n; ++j) {
        coord.emplace_back(op(line[j], mid), j);
      }
      sort(coord.begin(), coord.end());
      BIT<int> bit(n);
      int cnt = 0;
      for (int j = 0; j < n; ++j) {
        cnt += bit.sum(coord[j].second);
        bit.add(coord[j].second, 1);
      }
      DBG(mid, coord, cnt)
      if (cnt >= (n * (n - 1) / 2 + 1) / 2) {
        ub = mid;
      } else {
        lb = mid;
      }
    }
    return ub;
  }
};

}  // namespace Problem

int main() {
  std::cin.tie(0);
  std::ios_base::sync_with_stdio(false);
  std::cout << std::fixed << std::setprecision(12);
  long long n = 0;
  std::cin >> n;

  Problem::Solver sol(n);
  sol.solve();
  return 0;
}