만드는 중입니다

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

초콜릿 비긴즈

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

요약
N×M 보드를 모두 채우고 흰색과 검은색 초콜릿을 최대한 고르게 놓되, 행, 열, 대각선에 같은 색이 세 개 연속으로 놓이지 않는 경우의 수를 10^9+7로 나눈 나머지로 구합니다.
난이도

보통10점 중 7점

유형
조합론, 수학, 완전 탐색
정답자
아직 제출이 없습니다

문제

코코는 화이트 초콜릿과 다크 초콜릿을 가지고 한별이와 틱택토 게임을 하고 있다. 틱택토의 규칙은 다음과 같다.

  • 3×33\times 3 크기의 격자가 그려진 게임판을 준비한다.
  • 두 플레이어가 번갈아 가며 초콜릿을 게임판의 빈칸 하나에 놓는다. 먼저 시작하는 플레이어는 화이트 초콜릿을, 상대 플레이어는 다크 초콜릿을 놓는다. 이미 초콜릿이 놓인 칸에는 놓을 수 없다.
  • 가로, 세로, 대각선 방향으로 같은 색 초콜릿 3개를 먼저 놓은 플레이어가 이긴다. 게임판이 가득 찰 때까지 아무도 이기지 못하면 두 플레이어는 비긴다.

코코는 매번 비기기만 하는 이 게임이 지겨워질 때쯤 궁금한 점이 생겼다. N×MN\times M 크기의 게임판에서 두 사람이 협력해서 비긴 게임을 만든다면, 그 결과로 나올 수 있는 서로 다른 게임판은 몇 가지일까? 코코의 궁금증을 해결해주자. 게임판의 크기가 달라져도 가로, 세로, 대각선 방향으로 연속 3개를 놓으면 승리한다.

두 게임판은 같은 좌표에 서로 다른 초콜릿이 놓여 있는 곳이 하나라도 있으면 서로 다른 게임판이다. 최종적으로 초콜릿이 놓인 위치가 모두 같으면, 초콜릿을 놓은 순서가 달라도 같은 게임판으로 본다. "대각선 방향"은 45도 각도의 오른쪽 아래 방향과 오른쪽 위 방향만을 의미한다.

입력

정수 NN과 MM의 값이 첫 줄에 주어진다. (1≤N,M≤10001\le N,M\le 1000)

출력

N×MN\times M 크기의 게임판에서 틱택토 게임을 해서 나올 수 있는 서로 다른 비긴 게임판의 수를 109+710^9+7로 나눈 나머지를 출력한다.

예제1

  1. 예제 1

    입력
    3 3
    
    예상 출력
    16