Problem A

Molly Mole

Help Molly evaluate the cost of digging a tunnel from point A to point B, taking advantage of existing tunnels. Digging is hard work, even for a mole, so minimizing the amount of digging is really important for Molly.

A map of the underground is available in the form of a grid of open cells and closed cells. Each open cell represents a section of an existing tunnel and each closed cell represents a section of compact underground soil. The points A and B are also marked in the map. The map can be traversed in the horizontal direction, vertical direction and both diagonal directions.

Assume that:

Problem

Write a program that, given a map of the underground, where the points A and B are marked, computes the minimum cost of digging a tunnel from A to B.

Input

The first input line contains two integers, n and m, separated by a single space:

The following n lines, each with m characters, contain the following valid character values:

Output

The output contains a single non-negative integer, which represents the minimum cost of digging a tunnel from A to B.

Sample Input

30 70
######################################################################
#.A...################################################################
######################################################################
######################################################################
######################################################################
##................................................................####
######################################################################
######################################################################
##########.###########################################################
###########.##########################################################
############.####################.......###.......###.#####.##########
#############.###################.#########.#####.###.#####.##########
##############.##################.#########.#####.###..####.##########
###############.#################.#########.#####.###.#.###.##########
################.################.#########.......###.##.##.##########
#################.###############.#########.#########.###.#.##########
##################.##############.#########.#########.####..##########
###################.#############.#########.#########.#####.##########
####################.############.......###.#########.#####.##########
#####################.################################################
######################.###############################################
#######################.##############################################
########################.#############################################
#########################.############################################
######################################################################
######################################################################
#####..............................................................###
######################################################################
#################################################################B####
######################################################################

Sample Output

9


CPN'2003: 1st Concurso de Programação da Nova --- 1st Leg
Departamento de Informática
Faculdade de Ciêcias e Tecnologia
Universidade Nova de Lisboa