AT_joi2011yo_e チーズ (Cheese)

Description

[problemUrl]: https://atcoder.jp/contests/joi2011yo/tasks/joi2011yo_e 今年も JOI 町のチーズ工場がチーズの生産を始め,ねずみが巣から顔を出した.JOI 町は東西南北に区画整理されていて,各区画は巣,チーズ工場,障害物,空き地のいずれかである.ねずみは巣から出発して全てのチーズ工場を訪れチーズを $ 1 $ 個ずつ食べる. この町には,$ N $ 個のチーズ工場があり,どの工場も $ 1 $ 種類のチーズだけを生産している.チーズの硬さは工場によって異なっており,硬さ $ 1 $ から $ N $ までのチーズを生産するチーズ工場がちょうど $ 1 $ つずつある. ねずみの最初の体力は $ 1 $ であり,チーズを $ 1 $ 個食べるごとに体力が $ 1 $ 増える.ただし,ねずみは自分の体力よりも硬いチーズを食べることはできない. ねずみは,東西南北に隣り合う区画に $ 1 $ 分で移動することができるが,障害物の区画には入ることができない.チーズ工場をチーズを食べずに通り過ぎることもできる.すべてのチーズを食べ終えるまでにかかる最短時間を求めるプログラムを書け.ただし,ねずみがチーズを食べるのにかかる時間は無視できる. - - - - - -

Input Format

入力は $ H+1 $ 行ある.$ 1 $ 行目には $ 3 $ つの整数 $ H,W,N $ ($ 1\ \leqq\ H\ \leqq\ 1000 $,$ 1\ \leqq\ W\ \leqq\ 1000 $,$ 1\ \leqq\ N\ \leqq\ 9 $) がこの順に空白で区切られて書かれている.$ 2 $ 行目から $ H\ +\ 1 $ 行目までの各行には,`S`,`1`,`2`,$ \ldots $,`9`,`X`,`.` からなる $ W $ 文字の文字列が書かれており,各々が各区画の状態を表している.北から $ i $ 番目,西から $ j $ 番目の区画を $ (i,\ j) $ と記述することにすると ($ 1\ \leqq\ i\ \leqq\ H $,$ 1\ \leqq\ j\ \leqq\ W $),第 $ i\ +\ 1 $ 行目の $ j $ 番目の文字は,区画 $ (i,\ j) $ が巣である場合は `S` となり,障害物である場合は `X` となり,空き地である場合は `.` となり,硬さ $ 1 $,$ 2 $,$ \ldots $,$ 9 $ のチーズを生産する工場である場合はそれぞれ `1`,`2`,$ \ldots $,`9` となる.入力には巣と硬さ $ 1 $,$ 2 $,$ \ldots $,$ N $ のチーズを生産する工場がそれぞれ $ 1 $ つずつある.他のマスは障害物または空き地であることが保証されている.ねずみは全てのチーズを食べられることが保証されている.

Output Format

すべてのチーズを食べ終えるまでにかかる最短時間(分)を表す整数を $ 1 $ 行で出力せよ. - - - - - -

Explanation/Hint

### Sample Explanation 1 \- - - - - - ### Sample Explanation 2 \- - - - - -