#include using namespace std; typedef long long ll; #define rep(i,n) for(i=0;i G[1000000]; int main(int argc, char const *argv[]) { int i,j; //input int w,h,n; scanf(" %d %d %d",&w,&h,&n); rep(i,n){ int m; scanf(" %d",&m); vector b(m+1); rep(j,m+1) scanf(" %d", &b[j]); //隣接リストを構成 rep(j,m){ //sからdへ直線的に進む int s=b[j],d=b[j+1]; //進行方向決定 int dx=0,dy=0; if(s%w==d%w){//縦方向 if(s que; que.push(0); while(!que.empty()){ int v=que.front(); que.pop(); rep(i,G[v].size()){ if(dist[G[v][i]] > dist[v]+1){ dist[G[v][i]]=dist[v]+1; que.push(G[v][i]); } } } //output if(dist[w*h-1]==INF) printf("Odekakedekinai..\n"); else printf("%d\n",dist[w*h-1]); return 0; }