#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")