#include <iostream>
#include <vector>
#include <stack>
#include <fstream>
#include <algorithm>
 
using namespace std;

class Point {
private:
    double x, y, z;
public:
    Point(double _x = 1.0, double _y = 1.0, double _z = 1.0) {
        x = _x;
        y = _y;
        z = _z;
    }
    void input() {
        cin >> x >> y >> z;
    }
    double get_x() const {
        return x;
    }
    double get_y() const {
        return y;
    }
    double get_z() const {
        return z;
    }
};
Point min_y_cord(Point niza[], int n) {
    int minimum = 1e9; // 2 * 10^9, posle 2kata stavi 9 nuli
    Point m(0, minimum);
    for(int i = 0; i < n; i++) {
        if(niza[i].get_y() < m.get_y()) {
            m = niza[i];
        }
    }
    return m;
}
int main()
{
    int n;
    cin >> n;
    Point niza[n];
    for(int i = 0; i < n; i++) {
        niza[i].input();
    }
    Point m = min_y_cord(niza, n);
    cout << m.get_x() << " " << m.get_y() << " " << m.get_z() << endl;
    return 0;
}
