#include using namespace std; using ll=long long; int main(){ int h,w,m; cin>>h>>w>>m; vector s(h); for(int i=0;i>s[i]; vector>> dist(h,vector>(w,vector(10,1e9))); queue> bfs; for(int i=0;i=h||ny<0||ny>=w||s[nx][ny]=='#')continue; int nkey=key; if('1'<=s[nx][ny]&&s[nx][ny]<='9')nkey=s[nx][ny]-'0'; if(dist[nx][ny][nkey]!=1e9)continue; if('a'<=s[nx][ny]&&s[nx][ny]<='i'&&'a'+(nkey-1)!=s[nx][ny])continue; bfs.push(make_pair(nx*w+ny,nkey)); dist[nx][ny][nkey]=dist[x][y][key]+1; } } int ans=-1; for(int i=0;i