#include <iostream>
#include <algorithm>
using namespace std;
int a[4][5];
int main() {
    for(int i = 0; i < 4; i ++){
        for(int j = 0; j < 5; j++){
            cin>>a[i][j];
        }
    }
    int b[5][4];
    for(int i = 0; i < 5; i ++){
        for(int j = 0; j < 4; j ++){
            b[i][j] = a[j][i];//列转行,方便排序。
        }
    }
    for(int i = 0; i < 5; i++){
        sort(b[i], (b[i] + 4), greater<int>());//b行排序,即对a列排序;
    }
    int c[10];//统计a中每列中最大的两个数,按次序录入。
    int count = 0;
    int i, j;
    for(i = 0; i < 5; i ++){
        for(j = 0; j < 4; j ++){
            if(a[j][i] >= b[i][1])//对列遍历,大于等于第二大的数录入
                c[count++] = a[j][i];
        }
        if(c[2 * i + 1] == b[i][1] && (b[i][1] == b[i][2] )){
            c[2 * i + 1] = b[i][0];//由于列中有相同的第二大的数,导致最大值未录入数组c中情况,重新录入。
            count--;//count计入错误,-1
        }
    }
    for(int i = 0; i < 5; i ++){
        cout<<c[2 * i]<<' ';
    }
        cout<<endl;
    for(int i = 0; i < 5; i ++){
        cout<<c[2 * i + 1]<<' ';
    }
}
// 64 位输出请用 printf("%lld")