#include <bits/stdc++.h>
using namespace std;
class myNum{
public:
int data;
int rowNum;
myNum(int data, int rowNum){
this->data = data;
this->rowNum = rowNum;
}
myNum(){
data=0;
rowNum=0;
}
};
int main() {
int arr[4][5];
for(int i =0;i<4;i++)
for(int j =0;j<5;j++)
cin>>arr[i][j];
//找到每列最大的两个元素
myNum maxNum[5][2];//5表示列数,2表示每列两个最大的
for(int k=0;k<2;k++){
//i为列号
for(int i=0;i<5;i++){
int maxTemp=INT_MIN;
int rowTemp = 0;
for(int j =0;j<4;j++){
if(maxTemp<arr[j][i]){
//发现大元素,记录
maxTemp = arr[j][i];
rowTemp = j;
}
}
//保存该元素和它的行号
myNum my(maxTemp,rowTemp);
//数组中该元素置最小
arr[rowTemp][i]=INT_MIN;
//该元素保存到maxNum中
maxNum[i][k] = my;
}
}
//调整maxNum中的顺序,行号小的在上
for(int i =0;i<5;i++)
if((maxNum[i][0]).rowNum>maxNum[i][1].rowNum)
swap(maxNum[i][0],maxNum[i][1]);
//遍历输出maxNum数组
for(int i =0;i<5;i++){
cout<<maxNum[i][0].data<<" ";
}
cout<<endl;
//遍历输出maxNum数组
for(int i =0;i<5;i++){
cout<<maxNum[i][1].data<<" ";
}
}
// 64 位输出请用 printf("%lld")