
#include<vector>
#include<iostream>

using namespace std;

#ifndef BOCI
#define BOCI
struct Boci
{	
	int valor;
	int inici;
	int final;
};
#endif 

/* 
   Torna un vector amb el valor, inici i final dels bocins
   del vector v, ordenats per mida, de menor a més gran.
   En cas d'empat en la mida, va primer el bocí amb el valor més petit.
   En cas d’empat en la mida i en el valor,
   anirà primer el bocí que comenci a la posició més petita.
*/

vector<Boci> bocins(const vector<int>& v);

void llegeix(vector<int>& v, int n)
{
	for (unsigned int i = 0 ; i < v.size() ; i++)
		cin >> v[i];
	return;
}

void escriu(const vector<int>& v)
{
	for (unsigned int i = 0 ; i < v.size() ; i++)
		cout << v[i] << " ";
	cout << endl;
	return;
}

void escriu(const vector<Boci>& v)
{
	for (unsigned int i = 0 ; i < v.size() ; i++)
		cout << v[i].valor << " " << v[i].inici << " " << v[i].final << endl;
	
	cout << endl << endl;
	return;
}
 
int main()
{
	int n = 0;
	
	while (cin >> n)
	{
		vector<int> v(n);
		
		llegeix(v,n);
		vector<Boci> r = bocins(v);
		escriu(r);
	}
	return 0;
}

