만드는 중입니다

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

넴모넴모 (Hard)

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

요약
N 곱하기 M이 300 이하인 격자에서 꽉 찬 2 곱하기 2 정사각형을 포함하지 않는 배치의 수를 10^9+7로 나눈 나머지를 구한다.
난이도

어려움10점 중 8점

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

문제

네모는 낙하형 퍼즐 게임에 깊은 감명을 받아, 직사각형 격자판과 "넴모"라는 수수께끼의 생물을 쓰는 "넴모넴모"라는 게임을 만들었다. 규칙은 아주 간단하다. 격자판의 빈 칸을 아무거나 골라 넴모를 하나 올려놓거나, 넴모가 올라간 칸 네 개가 2×22 \times 2 정사각형을 이루는 곳을 찾아 그 위의 넴모를 모두 없앤다. 두 동작 중 하나를 질릴 때까지 반복하면 된다.

넴모 네 개가 2 x 2 정사각형을 이루면 한꺼번에 사라진다

안타깝게도 게임은 정말 재미가 없었고, 네모는 아주 빨리 질려 버리고 말았다. 실망한 네모는 게임을 적당히 하다가 넴모를 없애고 싶은데 격자판에 없앨 수 있는 넴모가 하나도 없으면 그만두기로 했다. 네모가 게임을 그만두었을 때 나올 수 있는 넴모 배치의 가짓수를 구하여라.

입력

첫 줄에 격자판의 행 개수 NN과 열 개수 MM이 공백으로 구분되어 주어진다. (1≤N,M≤3001 \le N, M \le 300, 1≤N×M≤3001 \le N \times M \le 300)

출력

넴모가 올라간 칸이 어느 곳에서도 2×22 \times 2 정사각형을 이루지 않는 배치의 가짓수를 109+710^9 + 7로 나눈 나머지를 첫 줄에 출력한다.

힌트

2×22 \times 2 격자판이라면 전체 24=162^4 = 16가지 배치 가운데 네 칸 모두 넴모가 올라간 한 가지만 빠지므로 답은 15가지다.

5×75 \times 7 격자판에서 조건을 만족하는 배치는 모두 11,185,495,872가지다.

예제3

  1. 예제 1

    입력
    2 2
    
    예상 출력
    15
    
  2. 예제 2

    입력
    3 5
    
    예상 출력
    22077
    
  3. 예제 3

    입력
    5 7
    
    예상 출력
    185495795