#include <iostream>
using namespace std;
int main() {
int m, n;
cin >> m >> n; // 输入数组的行数和列数
int a[m][n];
int row_max[m], col_min[n];
for (int i = 0; i < m; i++) {
row_max[ i] = 0;
for (int j = 0; j < n; j++) {
cin >> a[ i][j];
if (a[ i][j] > a[ i][row_max[ i]]) {
row_max[ i] = j; // 找出每行的最大值的列号
}
}
}
for (int j = 0; j < n; j++) {
col_min[j] = 0;
for (int i = 0; i < m; i++) {
if (a[ i][j] < a[col_min[j]][j]) {
col_min[j] = i; // 找出每列的最小值的行号
}
}
}
bool has_saddle_point = false;
for (int i = 0; i < m; i++) {
if (col_min[row_max[ i]] == i) {
cout << "Saddle point:a[" << i << "][" << row_max[ i] << "]=" << a[ i][row_max[ i]] << endl;
has_saddle_point = true;
}
}
if (!has_saddle_point) {
cout << "There is no saddle point" << endl;
}
return 0;
}