#include<stdio.h>
int max_inline(int n,int A[]);
int main()
{
//读入正方形矩阵
int n=0;
scanf("%d",&n);
int A[n][n];
int i;
int j;
for(i=0;i<n;i++){
for(j=0;j<n;j++){
scanf("%d",&A[i][j]);
printf("%d,%d\n",i,j);//去掉这行程序就出错,why?
}
}
i=0;
j=0;
for(i=0;i<n;i++){
int maxj=0;
int ret=1;
//找出第I行最大的数的位置为maxj;
maxj=max_inline(n,A[i]);
//若A[i][maxj]为maxj列最小的数,输出I、max;
int tempi=0;
for(tempi=0;tempi<n;tempi++){
if(A[i][maxj]>A[tempi][maxj]){
ret=0;
break;
}
}
if(ret){
printf("%d %d",i,maxj);
break;
}
}
return 0;
}
int max_inline(int n,int A[])
{
int i;
int max;
for(i=0;i<n;i++){
if(A[max]<A[i]){
max=i;
}
}
return max;
}
int max_inline(int n,int A[]);
int main()
{
//读入正方形矩阵
int n=0;
scanf("%d",&n);
int A[n][n];
int i;
int j;
for(i=0;i<n;i++){
for(j=0;j<n;j++){
scanf("%d",&A[i][j]);
printf("%d,%d\n",i,j);//去掉这行程序就出错,why?
}
}
i=0;
j=0;
for(i=0;i<n;i++){
int maxj=0;
int ret=1;
//找出第I行最大的数的位置为maxj;
maxj=max_inline(n,A[i]);
//若A[i][maxj]为maxj列最小的数,输出I、max;
int tempi=0;
for(tempi=0;tempi<n;tempi++){
if(A[i][maxj]>A[tempi][maxj]){
ret=0;
break;
}
}
if(ret){
printf("%d %d",i,maxj);
break;
}
}
return 0;
}
int max_inline(int n,int A[])
{
int i;
int max;
for(i=0;i<n;i++){
if(A[max]<A[i]){
max=i;
}
}
return max;
}