#agc005d. [agc005_d]~K Perm Counting

[agc005_d]~K Perm Counting

题目描述

Snuke 喜欢排列。他正在制作一个长度为 NN 的排列。

由于他讨厌整数 KK,他的排列必须满足以下条件:

  • 设排列为 a1,a2,...,aNa_1, a_2, ..., a_N。对于每个 i=1,2,...,Ni = 1,2,...,NaiineqK|a_i - i| \\neq K

在长度为 NN 的所有排列中,有多少个满足此条件的排列?

由于答案可能非常大,将答案对 924844033924844033(质数)取模。

约束条件

  • 2N20002 ≦ N ≦ 2000
  • 1KN11 ≦ K ≦ N-1

输入

从标准输入读入数据,数据格式如下:

NN KK

输出

输出答案对 924844033924844033 取模后的结果。


示例输入1

3 1

示例输出1

2

22 个满足条件的排列:(1,2,3)(1, 2, 3)(3,2,1)(3, 2, 1)


示例输入2

4 1

示例输出2

5

55 个满足条件的排列:(1,2,3,4)(1, 2, 3, 4)(1,4,3,2)(1, 4, 3, 2)(3,2,1,4)(3, 2, 1, 4)(3,4,1,2)(3, 4, 1, 2)(4,2,3,1)(4, 2, 3, 1)


示例输入3

4 2

示例输出3

9

示例输入4

4 3

示例输出4

14

示例输入5

425 48

示例输出5

756765083