二次元配列を受け取り、走査しながら見た中の最大値を持つことで、この問題を正解できます。 c++, Python での実装例を以下に示します。
#include<bits/stdc++.h>
using namespace std;
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
int h, w; cin >> h >> w;
int ansX = 1, ansY = 1, mx = 0;
for(int i = 0; i < h; i++){
for(int j = 0; j < w; j++){
int a; cin >> a;
if(a > mx){
mx = a;
ansX = i + 1, ansY = j + 1;
}
}
}
cout << ansX << " " << ansY << "\n";
}h, w = map(int, input().split())
a = [list(map(int, input().split())) for _ in range(h)]
ansX, ansY = 1, 1
mx = 0
for i in range(h):
for j in range(w):
if a[i][j] > mx:
mx = a[i][j]
ansX = i + 1
ansY = j + 1
print(ansX, ansY)