#include <iostream>
using namespace std;
int main() {
int n,maxa,mina;
cin >>n;
int a[n][n];
for(int i=0; i<n;++i){
for(int j=0;j<n;++j){
cin >>a[i][j];
}
}
int b[n];
for(int i=0;i<n;++i){
maxa=a[i][0]; //Придаем максимуму значение первого элемента i-й строки.
mina=a[0][i]; //Минимуму же придаем значение первого элемента i-го столбца.
for(int j=0;j<n;++j){
maxa=(maxa>a[i][j]?maxa:a[i][j]); //Вычисляем максимум i-й строки.
mina=(mina<a[j][i]?mina:a[j][i]); //Минимум i-го столбца.
}
b[i]=maxa*mina; //Наш результат.
} for(int i=0;i<n;++i){
cout <<b[i]<<" ";
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwppbnQgbWFpbigpIHsKCWludCBuLG1heGEsbWluYTsKCWNpbiA+Pm47CglpbnQgYVtuXVtuXTsKCWZvcihpbnQgaT0wOyBpPG47KytpKXsKCQlmb3IoaW50IGo9MDtqPG47KytqKXsKCQkJY2luID4+YVtpXVtqXTsKCQl9Cgl9CglpbnQgYltuXTsKCWZvcihpbnQgaT0wO2k8bjsrK2kpewoJCW1heGE9YVtpXVswXTsgLy/Qn9GA0LjQtNCw0LXQvCDQvNCw0LrRgdC40LzRg9C80YMg0LfQvdCw0YfQtdC90LjQtSDQv9C10YDQstC+0LPQviDRjdC70LXQvNC10L3RgtCwIGkt0Lkg0YHRgtGA0L7QutC4LgoJCW1pbmE9YVswXVtpXTsgLy/QnNC40L3QuNC80YPQvNGDINC20LUg0L/RgNC40LTQsNC10Lwg0LfQvdCw0YfQtdC90LjQtSDQv9C10YDQstC+0LPQviDRjdC70LXQvNC10L3RgtCwIGkt0LPQviDRgdGC0L7Qu9Cx0YbQsC4KCQlmb3IoaW50IGo9MDtqPG47KytqKXsKCQkJbWF4YT0obWF4YT5hW2ldW2pdP21heGE6YVtpXVtqXSk7IC8v0JLRi9GH0LjRgdC70Y/QtdC8INC80LDQutGB0LjQvNGD0LwgaS3QuSDRgdGC0YDQvtC60LguCgkJCW1pbmE9KG1pbmE8YVtqXVtpXT9taW5hOmFbal1baV0pOyAvL9Cc0LjQvdC40LzRg9C8IGkt0LPQviDRgdGC0L7Qu9Cx0YbQsC4KCQl9CgkJYltpXT1tYXhhKm1pbmE7IC8v0J3QsNGIINGA0LXQt9GD0LvRjNGC0LDRgi4KCX0JZm9yKGludCBpPTA7aTxuOysraSl7CgkJY291dCA8PGJbaV08PCIgIjsKCX0KCXJldHVybiAwOwp9