만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

사무실 개설

시간 제한1초메모리 제한1024 MB

요약
격자의 건물 중 T개를 고르는 방법 가운데, 낮 도로와 밤 도로에서 최소 순회 길이가 같은 경우의 수를 10^9+7로 나눈 나머지로 구합니다.
난이도

어려움10점 중 8점

유형
트리, 동적 계획법, 조합론
정답자
아직 제출이 없습니다

문제

회사가 가로 방향 도로 NN개와 세로 방향 도로 MM개로 이루어진 도시에 사무실을 열려고 합니다. 교차로마다 건물이 하나씩 있습니다. 각 건물은 이웃 건물과 세로 도로 최대 두 개, 가로 도로 최대 두 개로 연결되며, 모든 도로의 길이는 1입니다.

밤에는 도로 중 N×M−1N \times M - 1개만 켜져 있고 나머지는 사용할 수 없습니다. 켜진 도로는 트리를 이루므로 어떤 건물에서든 다른 모든 건물로 갈 수 있습니다.

첫 번째 그림은 밤의 도로이고, 두 번째 그림은 낮의 도로입니다. 세 번째 그림은 아래 설명에서 쓰는 작은 예시입니다.

사무실 건물을 고르면 매달 사무실을 순회합니다. 한 건물에서 출발해 선택된 나머지 사무실을 모두 방문한 뒤 처음 건물로 돌아옵니다. 사용할 수 있는 도로만 이용해 순회 길이를 최소화합니다. 순회가 낮에 이루어지는지 밤에 이루어지는지는 알 수 없습니다.

오른쪽 그림의 예에서 건물 A, D, F에 사무실을 열면 낮의 순회 길이는 6이고 밤의 순회 길이는 10입니다.

계획을 단순하게 하려고 낮과 밤의 최소 순회 길이가 같아지도록 사무실 건물을 고릅니다. 이 조건을 만족하는 사무실 건물 선택 방법의 수를 구하세요. 한쪽 선택에만 들어 있는 건물이 하나라도 있으면 두 선택은 다른 것으로 봅니다. 방법의 수가 클 수 있으므로 109+710^9 + 7로 나눈 나머지를 구합니다. 사무실 수의 제한은 입력 형식을 참고하세요.

입력

첫째 줄에 정수 NN, MM, TT가 주어집니다. TT는 열 사무실의 정확한 개수입니다. 다만 T=1T = 1이면 사무실을 몇 개든 열 수 있고, 최소 두 개는 열어야 합니다.

다음 NN개 줄에는 공백 없이 MM개의 문자가 주어집니다. (i+1)(i+1)번째 줄의 jj번째 문자는 위에서 ii번째, 왼쪽에서 jj번째 건물의 밤 도로를 나타내며 다음 중 하나입니다.

  • 0: 이 건물에서 위쪽이나 왼쪽으로 이어지는 도로가 없습니다.
  • 1: 이 건물에서 바로 위 건물로 이어지는 도로가 있습니다.
  • 2: 이 건물에서 바로 왼쪽 건물로 이어지는 도로가 있습니다.
  • 3: 이 건물에서 바로 위 건물과 바로 왼쪽 건물로 이어지는 도로가 모두 있습니다.

도로는 정확히 N×M−1N \times M - 1개이며 트리를 이룹니다.

출력

방법의 수를 109+710^9 + 7로 나눈 나머지를 한 줄에 출력합니다.

제한

  • 1≤T≤31 \le T \le 3
  • 1≤N,M≤1 0001 \le N, M \le 1\,000

예제3

  1. 예제 1

    입력
    2 3 2
    022
    031
    
    예상 출력
    12
    
  2. 예제 2

    입력
    2 3 3
    022
    031
    
    예상 출력
    10
    
  3. 예제 3

    입력
    2 3 1
    022
    031
    
    예상 출력
    25