QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 1024 MB Total points: 100 Hackable ✓

#17937. 초콜릿 비긴즈

Statistics

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

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

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

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

(이하 예제 1 설명)

$3 \times 3$ 게임판에서 나올 수 있는 비긴 게임판은 다음과 같이 16가지가 있다.

Input

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

Output

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

Examples

Input 1

3 3

Output 1

16

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.