Bobo는 ICPCCamp에서 $n \times m$ 크기의 땅을 샀는데, 일부 칸에는 장애물이 있습니다.
그는 두 직사각형 영역을 선택하여 집 두 채를 짓고 싶어 합니다. 집을 지을 영역에는 당연히 장애물이 없어야 합니다. 또한 두 영역은 겹칠 수 없습니다(서로 인접하는 것은 가능합니다).
Bobo는 가능한 모든 서로 다른 방법의 수를 $(10^9 + 7)$로 나눈 나머지를 알고 싶어 합니다.
입력
입력에는 최대 $10$개의 테스트 케이스가 포함됩니다.
각 테스트 케이스의 첫 번째 줄에는 두 정수 $n, m$ ($1 \leq n, m \leq 10^3$)이 주어집니다.
다음 $n$개 줄 중 $i$번째 줄에는 길이가 $m$인 문자열 $s_i$가 주어집니다. $s_i$의 $j$번째 문자가 0이면 $i$번째 행 $j$번째 열의 칸이 빈 땅이고, 1이면 그 칸에 장애물이 있음을 나타냅니다.
출력
각 테스트 케이스마다 구하는 값을 나타내는 정수 하나를 출력하세요.
예제
입력 1
2 2 00 01 3 4 1000 0001 0100
출력 1
5 160