#include using namespace std; using ll = long long; template using min_priority_queue = priority_queue,greater>; constexpr int dx[] = {0, 1, 0, -1}; constexpr int dy[] = {-1, 0, 1, 0}; int main(){ int N, M, K; cin >> N >> M >> K; vector A(N, vector(M)); for(int i=0; i> A[i][j]; } } auto check = [&](ll m) -> bool{ vector cost(N, vector(M)); for(int i=0; i(M, 1<<30)); min_priority_queue> que; dist[0][0] = cost[0][0]; que.emplace(dist[0][0], 0, 0); while(!que.empty()){ auto [d, y, x] = que.top(); que.pop(); if(dist[y][x]