블록으로 직사각형 채우기
시간 제한1초메모리 제한256 MB
N행 M열 직사각형을 1×N, 2×N, …, N×N 블록(회전 가능)으로 빈틈없이 채우는 경우의 수를 1999로 나눈 나머지를 구한다.
문제
, , , 크기의 블록이 종류마다 무한히 있다. 이 블록으로 행 열 직사각형을 빈틈없이 채우려고 한다.
블록은 돌려서 놓을 수 있다. 즉 블록은 행 열로 놓을 수도 있고 행 열로 놓을 수도 있다. 블록끼리 겹치거나 직사각형 밖으로 나가면 안 된다.
어떤 칸을 덮는 블록의 위치나 모양이 한 군데라도 다르면 서로 다른 방법으로 센다. 채우는 방법의 수를 로 나눈 나머지를 구하여라.
입력
첫째 줄에 과 이 공백을 사이에 두고 주어진다. (, )
출력
채우는 방법의 수를 로 나눈 나머지를 한 줄에 출력한다.