#include <cstdio>
#include <cstdlib>
#include <vector>
#include <algorithm>

using namespace std;

template <class T>
class bit {
    public:
    bit(int n);
    ~bit();
    void clear();
    void add(int x, T value);
    T get(int x) const; // [0, x]
    
    private:
    int size;
    T* data;
};

template <class T> bit<T>::bit(int n) : size(n + 1) {
    data = (T *)calloc(size, sizeof(T));
}

template <class T> bit<T>::~bit() {
    free(data);
}

template <class T> void bit<T>::clear() {
    for (int i = 0; i < size; i++) data[i] = 0;
}

template <class T> void bit<T>::add(int x, T value) {
    for (x++; x < size; x += x & -x) data[x] += value;
}

template <class T> T bit<T>::get(int x) const {
    T value = 0;
    for (x++; x > 0; x -= x & -x) value += data[x];
    return value;
}

int a[40000];
int b[40000];
int c[40000];
int d1[40000];
int d2[40000];

int main() {
    int n, i, j;
    double x, y, l, r, m;
    vector <pair<double, int> > v1, v2;
    
    scanf("%d", &n);
    
    for (i = 0; i < n; i++) scanf("%d %d %d", &a[i], &b[i], &c[i]);
    
    for (i = 0; i < n; i++) {
        v1.push_back(make_pair(-(double)a[i] / b[i], i));
        v2.push_back(make_pair(-(double)b[i] / a[i], i));
    }
    
    sort(v1.begin(), v1.end());
    sort(v2.begin(), v2.end());
    
    for (i = 0; i < n; i++) {
        d1[v1[i].second] = i;
        d2[v2[i].second] = i;
    }
    
    bit <int> bt(n);
    
    l = -1e9, r = 1e9, m = (l + r) / 2;
    
    for (i = 0; i < 100; i++) {
        int sum = 0;
        vector <pair<double, int> > w;
        
        for (j = 0; j < n; j++) w.push_back(make_pair((-(double)a[j] * m + c[j]) / b[j], d1[j]));
        
        sort(w.begin(), w.end());
        
        bt.clear();
        
        for (j = 0; j < n; j++) {
            sum += bt.get(w[j].second);
            bt.add(w[j].second, 1);
        }
        
        if (n * (n - 1) / 2 % 2 == 0) {
            if (sum >= n * (n - 1) / 4) {
                r = m;
                m = (l + r) / 2;
            } else {
                l = m;
                m = (l + r) / 2;
            }
        } else {
            if (sum > n * (n - 1) / 4) {
                r = m;
                m = (l + r) / 2;
            } else {
                l = m;
                m = (l + r) / 2;
            }
        }
    }
    
    x = m;
    
    l = -1e9, r = 1e9, m = (l + r) / 2;
    
    for (i = 0; i < 100; i++) {
        int sum = 0;
        vector <pair<double, int> > w;
        
        for (j = 0; j < n; j++) w.push_back(make_pair((-(double)b[j] * m + c[j]) / a[j], d2[j]));
        
        sort(w.begin(), w.end());
        
        bt.clear();
        
        for (j = 0; j < n; j++) {
            sum += bt.get(w[j].second);
            bt.add(w[j].second, 1);
        }
        
        if (n * (n - 1) / 2 % 2 == 0) {
            if (sum >= n * (n - 1) / 4) {
                r = m;
                m = (l + r) / 2;
            } else {
                l = m;
                m = (l + r) / 2;
            }
        } else {
            if (sum > n * (n - 1) / 4) {
                r = m;
                m = (l + r) / 2;
            } else {
                l = m;
                m = (l + r) / 2;
            }
        }
    }
    
    y = m;
    
    printf("%.12lf %.12lf\n", x, y);
    
    return 0;
}


Measured memory_bytes: 4136