아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

블록 2

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

요약
N x M 직사각형을 1 x N부터 N x N까지의 블록으로 빈틈없이 채우는 방법의 수를 1999로 나눈 나머지를 구한다. M은 10^10까지 커질 수 있다.
난이도

어려움10점 중 9점

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

문제

1×N1 \times N, 2×N2 \times N, ..., N×NN \times N 크기의 블록이 종류마다 무한히 있다. 블록은 90도 돌려서 놓을 수 있다. 블록끼리 겹치거나 직사각형 밖으로 나가면 안 된다.

이 블록들로 N×MN \times M 직사각형을 빈칸 없이 채우는 방법의 수를 1999로 나눈 나머지를 구하여라. 크기가 같은 블록은 서로 구분하지 않으므로, 채워진 모양이 같으면 한 가지 방법으로 센다.

입력

첫째 줄에 NN과 MM이 공백으로 구분되어 주어진다. (1≤N≤1001 \le N \le 100, 1≤M≤10101 \le M \le 10^{10})

출력

N×MN \times M 직사각형을 채우는 방법의 수를 1999로 나눈 나머지를 한 줄에 출력한다.

예제2

  1. 예제 1

    입력
    2 12
    
    예상 출력
    732
    
  2. 예제 2

    입력
    3 3
    
    예상 출력
    7