#include <iostream>
using namespace std;
 
struct unsortedtime {
	int hours;
	int minutes;
	int seconds;
};
 
bool operator > (const unsortedtime &a, const unsortedtime &b) {
    bool res = false;
    if (a.hours > b.hours) res = true;
    else if (a.hours == b.hours) {
        if (a.minutes > b.minutes) res = true;
        else if (a.minutes == b.minutes) {
            if (a.seconds > b.seconds) res = true;
        }
    }
    return res;
};
 
int main() {
    int n;
    cin >> n;
    unsortedtime *a = new unsortedtime[n];
    for (int i = 0; i < n; i++) {
        cin >> a[i].hours >> a[i].minutes >> a[i].seconds;
    }
    for (int k = 2; k <= n; k++) {
        for (int i = 0; i <= n - k; i++) {
            if (a[i] > a[i + 1]) {
                swap(a[i], a[i + 1]);
            }
        }
    }
    for (int i = 0; i < n; i++) {
        cout << a[i].hours << " " << a[i].minutes << " " << a[i].seconds << endl;
    }
    return 0;
}