import java.util.*;
import java.lang.*;
import java.io.*;
class Codechef {
public static int bfs(char[][] grid,int n,int m) {
if (grid[0][0]=='#'||grid[n-1][m-1]=='#')return -1;
Queue<int[]>q=new LinkedList<>();
boolean[][]visited=new boolean[n][m];
q.add(new int[]{0,0,0});
visited[0][0]=true;
int[][]dirs={{1,0},{-1,0},{0,1},{0,-1}};
while(!q.isEmpty()){
int[]cell=q.poll();
int r=cell[0], c=cell[1], dist=cell[2];
if (r==n-1 && c==m-1)return dist;
for (int[]d:dirs){
int nr= r+d[0], nc=c+d[1];
if (nr>=0 && nr<n && nc>=0 && nc<m && !visited[nr][nc] && grid[nr][nc]=='.'){
visited[nr][nc]=true;
q.add(new int[]{nr,nc,dist+1});
}
}
}
return -1;
}
{
// your code goes here
Scanner sc
=new Scanner
(System.
in); int n=sc.nextInt();
int m=sc.nextInt();
sc.nextLine();
char[][]grid=new char[n][m];
for (int i=0;i<n;i++){
for (int j=0;j<m && j<val.length();j++){
grid[i][j]=val.charAt(j);
}
}
int out=bfs(grid,n,m);
sc.close();
}
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgpjbGFzcyBDb2RlY2hlZiB7CiAgICBwdWJsaWMgc3RhdGljIGludCBiZnMoY2hhcltdW10gZ3JpZCxpbnQgbixpbnQgbSkgewogICAgICAgIGlmIChncmlkWzBdWzBdPT0nIyd8fGdyaWRbbi0xXVttLTFdPT0nIycpcmV0dXJuIC0xOwoKICAgICAgICBRdWV1ZTxpbnRbXT5xPW5ldyBMaW5rZWRMaXN0PD4oKTsKICAgICAgICBib29sZWFuW11bXXZpc2l0ZWQ9bmV3IGJvb2xlYW5bbl1bbV07CiAgICAgICAgcS5hZGQobmV3IGludFtdezAsMCwwfSk7CiAgICAgICAgdmlzaXRlZFswXVswXT10cnVlOwogICAgICAgIGludFtdW11kaXJzPXt7MSwwfSx7LTEsMH0sezAsMX0sezAsLTF9fTsKICAgICAgICAKICAgICAgICB3aGlsZSghcS5pc0VtcHR5KCkpewogICAgICAgICAgICBpbnRbXWNlbGw9cS5wb2xsKCk7CiAgICAgICAgICAgIGludCByPWNlbGxbMF0sIGM9Y2VsbFsxXSwgZGlzdD1jZWxsWzJdOwogICAgICAgICAgICBpZiAocj09bi0xICYmIGM9PW0tMSlyZXR1cm4gZGlzdDsKICAgICAgICAgICAgZm9yIChpbnRbXWQ6ZGlycyl7CiAgICAgICAgICAgICAgICBpbnQgbnI9IHIrZFswXSwgbmM9YytkWzFdOwogICAgICAgICAgICAgICAgaWYgKG5yPj0wICYmIG5yPG4gJiYgbmM+PTAgJiYgbmM8bSAmJiAhdmlzaXRlZFtucl1bbmNdICYmIGdyaWRbbnJdW25jXT09Jy4nKXsKICAgICAgICAgICAgICAgICAgICB2aXNpdGVkW25yXVtuY109dHJ1ZTsKICAgICAgICAgICAgICAgICAgICBxLmFkZChuZXcgaW50W117bnIsbmMsZGlzdCsxfSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIC0xOwogICAgfQogICAgCiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCQkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCiAgICAgICAgU2Nhbm5lciBzYz1uZXcgU2Nhbm5lcihTeXN0ZW0uaW4pOwogICAgICAgIGludCBuPXNjLm5leHRJbnQoKTsKICAgICAgICBpbnQgbT1zYy5uZXh0SW50KCk7CiAgICAgICAgc2MubmV4dExpbmUoKTsKICAgICAgICBjaGFyW11bXWdyaWQ9bmV3IGNoYXJbbl1bbV07CiAgICAgICAgZm9yIChpbnQgaT0wO2k8bjtpKyspewogICAgICAgICAgICBTdHJpbmcgdmFsPXNjLm5leHRMaW5lKCk7CiAgICAgICAgICAgIGZvciAoaW50IGo9MDtqPG0gJiYgajx2YWwubGVuZ3RoKCk7aisrKXsKICAgICAgICAgICAgICAgIGdyaWRbaV1bal09dmFsLmNoYXJBdChqKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpbnQgb3V0PWJmcyhncmlkLG4sbSk7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKG91dCk7CiAgICAgICAgc2MuY2xvc2UoKTsKICAgIH0KfQ==