15. 미로 탈출
## 개요
N x M 크기의 미로가 주어집니다. 미로는 0과 1로 이루어져 있으며, 0은 이동 가능한 공간, 1은 이동 불가능한 벽을 나타냅니다. (0, 0) 위치에서 시작하여 (N-1, M-1) 위치로 이동하려고 합니다. 각 칸을 이동하는 데 1의 시간이 소요됩니다. 상하좌우로만 이동이 가능하며, 벽을 통과할 수 없습니다. 미로를 탈출하는 최단 시간을 구하는 프로그램을 작성하십시오.
## 입력
첫 번째 줄에 미로의 크기 N과 M (1 ≤ N, M ≤ 1000)이 주어집니다. 다음 N개의 줄에 M개의 정수로 미로 정보가 주어집니다.
## 출력
(0, 0)에서 (N-1, M-1)로 이동하는 최단 시간을 출력합니다. 도착할 수 없는 경우 -1을 출력합니다.
## 예시 입력
```
3 4
0 0 1 0
0 1 0 0
0 0 0 0
```
**예시 출력:**
```
7
```