#include<stdio.h>
struct Thing
{
	int a,b,value; //构建结构体
};
int main()
{
	int m,n;
	Thing th[100][100],t;//定义一个 二维数组 去存放 某个物品,并且定义一个 暂存的空间;
	scanf("%d %d",&n,&m);//读入行列
	int i,j,p,q;
	for(i=0;i<n;i++)
		for(j=0;j<m;j++)
		{
			scanf("%d",&th[i][j].value);//读入每个物体的价值
			th[i][j].a=i+1;//赋值 行
			th[i][j].b=j+1;//赋值 列
		}
	for(i=0;i<n;i++)
		for(j=0;j<m;j++)
		{
			for(p=i;p<n;p++)
				for(q=j;q<m;q++)
			if(th[i][j].value<th[p][q].value || th[i][j].value==th[p][q].value && th[i][j].a>th[p][q].a || 
				th[i][j].value==th[p][q].value && th[i][j].a==th[p][q].a && th[i][j].b>th[p][q].b)
			{
				t=th[i][j];th[i][j]=th[p][q];th[p][q]=th[i][j];//交换
			}
		}
	for(i=0;i<n;i++)
		for(j=0;j<m;j++)
		{
			printf("%d %d %d\n",th[i][j].a,th[i][j].b,th[i][j].value);//输出
		}
	return 0;
}