Informatica Online Judge

  ㅁㅁㅁ [2284 / 08EC]

Time Limit(Test case) : 1000(ms)
Number of users who solved : 9   Total Tried : 9


The Champion of this Problem (C++) : N/A
My Best Submission (C++) : N/A

[34th 정원준]

Background

자연수 n과 k가 입력될 때, 2*n모양의 타일을 1*2, 1*1타일으로 채우는 경우의 수를 998,244,353으로 나눈 나머지를 구하여라.

단, 1*1타일은 k개 이하만 사용 가능하다.

Input

첫 줄에 n과 k가 입력된다.
(1<=n<=10^18, 0<=k<=3)

Output

경우의 수를 998,244,353으로 나눈 나머지를 출력한다.

IO Example

입력 1
3 2

출력 1
14

입력 2
10 0

출력 2
89

입력 3
314159265358979 3

출력 3
181056255

Submit : [C/C++] | [C++11] | [Obj-C] | [Java] | [Python]
Prob Analysis : [Problem Statistics] | [Solution]