#include using namespace std; int H, W; vector adj_list[1000010]; int dist[1000010]; int bfs() { for (int i=0; i q; q.push(0); dist[0] = 0; while (q.size()) { int v = q.front(); q.pop(); for (auto& nv : adj_list[v]) { if (dist[nv]==-1) { dist[nv] = dist[v]+1; q.push(nv); } } } return dist[H*W-1]; } int main() { cin >> H >> W; int N; cin >> N; int imos1[H][W]; int imos2[H][W]; for (int i=0; i> Mi; int B[Mi+1]; for (int j=0; j> B[j]; for (int j=0; j0) { adj_list[i*W+j].push_back(i*W+j+1); adj_list[i*W+j+1].push_back(i*W+j); } } } for (int i=0; i0) { adj_list[i*W+j].push_back((i+1)*W+j); adj_list[(i+1)*W+j].push_back(i*W+j); } } } int ans = bfs(); if (ans==-1) { cout << "Odekakedekinai.." << endl; } else { cout << ans << endl; } }