from collections import deque

def escape_slime(n, m, field):
    # Создаем массив visited, заполняем его False
    visited = [[False] * m for _ in range(n)]
    
    # Задаем смещения влево, вправо, вверх и вниз
    dx = [-1, 1, 0, 0]
    dy = [0, 0, -1, 1]
    
    # Стартовое положение слайма
    start_x, start_y = 0, 0
    
    # Создаем очередь и добавляем стартовые координаты
    queue = deque([(start_x, start_y)])
    
    # Помечаем стартовую клетку как посещенную
    visited[start_x][start_y] = True
    
    # Переменная для хранения количества шагов
    steps = 0
    
    # Флаг для проверки достижения нижнего правого угла
    reached = False
    
    # Пока очередь не пустая
    while queue:
        size = len(queue)
        
        # Обрабатываем все клетки на текущем уровне
        for _ in range(size):
            x, y = queue.popleft()
            
            # Если достигли нижнего правого угла, выходим из цикла
            if x == n - 2 and y == m - 2:
                reached = True
                break
            
            # Проверяем каждое направление
            for i in range(4):
                new_x = x + dx[i]
                new_y = y + dy[i]
                
                # Если новая позиция в пределах поля и не посещена и не является дыркой
                if 0 <= new_x < n - 1 and 0 <= new_y < m - 1 and not visited[new_x][new_y] and field[new_x][new_y] == '.':
                    # Помечаем новую позицию как посещенную и добавляем в очередь
                    visited[new_x][new_y] = True
                    queue.append((new_x, new_y))
        
        # Увеличиваем количество шагов
        steps += 1
        
        # Если достигли нижнего правого угла, выходим из цикла
        if reached:
            break
    
    # Если достигли нижн
