만드는 중입니다

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

맛있는 케이크

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

요약
N×M 격자에서 칠하지 않은 칸을 1×2 도미노로 빈틈없이 덮을 수 있는 칠하기 경우의 수를 10^9+7로 나눈 나머지로 구합니다.
난이도

보통10점 중 6점

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

문제

여름 방학 매일 미샤는 수첩에 N × M 칸짜리 반듯한 직사각형 격자를 그리고 칸 일부를 색칠했다. 날마다 나온 그림은 다른 모든 그림과 달라서, 미샤가 그린 그림은 모두 2NM2^{NM}개이다(아래 그림에서 색칠된 칸은 회색으로 표시했다).

매일 친구 볼로쟈는 미샤의 그림 한 장을 골라 색칠되지 않은 칸을 1 × 2 직사각형으로 덮으려고 한다. 색칠되지 않은 칸은 모두 덮여야 하고, 직사각형은 색칠된 칸을 덮을 수 없으며, 격자 밖으로 나갈 수 없고, 서로 겹칠 수 없다.

볼로쟈가 늘 성공하지는 못했다(N = 2, M = 2인 경우에 성공한 사례는 위 그림과 같다). 그래도 성공한 며칠에는 미샤의 어머니가 아이들이 기특하다며 케이크를 구워 주셨다. 어머니가 구운 케이크는 모두 몇 개인가?

입력

첫 줄에 격자의 크기를 나타내는 정수 N과 M이 주어진다(1≤N≤61 \le N \le 6, 1≤M≤5001 \le M \le 500).

출력

구하는 케이크 개수를 109+710^9 + 7로 나눈 나머지를 출력한다.

예제2

  1. 예제 1

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

    입력
    2 3
    
    예상 출력
    18