class Solution {
public:
vector<int> findPeakGrid(vector<vector<int>>& arr) {
int n = arr.size(), m = arr[0].size();
int head = 0, tail = n - 1, mid;
while (head < tail) {
mid = (head + tail) >> 1;
int ind = max_element(arr[mid].begin(), arr[mid].end()) - arr[mid].begin();
if (arr[mid][ind] < arr[mid + 1][ind]) {
head = mid + 1;
}
else tail = mid;
}
int ind = max_element(arr[head].begin(), arr[head].end()) - arr[head].begin();
return {head, ind};
}
};