#ATagc005d. [AGC005D] ~K Perm Counting

[AGC005D] ~K Perm Counting

题目描述

Snuke 非常喜欢排列,所以他决定创建一个长度为 NN 的排列。

但是 Snuke 不喜欢整数 KK,因此他决定创建一个满足以下条件的排列:

  • 设排列为 a1,a2,...,aNa_1, a_2, ..., a_N。对于所有的 i=1,2,...,Ni = 1,2,...,N,满足 aiiK|a_i - i| \neq K

长度为 NN 的排列共有 N!N! 种,其中满足条件的有多少种?由于答案可能非常大,请将答案对素数 924844033924844033 取模后输出。

输入格式

输入通过标准输入给出,格式如下:

NN KK

输出格式

输出一行,包含答案对 924844033924844033 取模后的结果。

样例 1

输入

3 1

输出

2

样例 2

输入

4 1

输出

5

样例 3

输入

4 2

输出

9

样例 4

输入

4 3

输出

14

样例 5

输入

425 48

输出

756765083

说明/提示

约束条件

  • 2N20002 \leq N \leq 2000
  • 1KN11 \leq K \leq N-1

样例解释 #1

(1,2,3)(1, 2, 3)(3,2,1)(3, 2, 1) 共2种排列满足条件。

样例解释 #2

(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) 共5种排列满足条件。

翻译由 DeepSeek 提供。