Problem: Snuke loves permutations. He is making a permutation of length N.

Since he hates the integer K, his permutation will satisfy the following:

* Let the permutation be a_1, a_2, ..., a_N. For each i = 1,2,...,N, |a_i - i| \neq K.



Among the N! permutations of length N, how many satisfies this condition?

Since the answer may be extremely large, find the answer modulo 924844033(prime).

Constraints

* 2 ≦ N ≦ 2000
* 1 ≦ K ≦ N-1

Input

The input is given from Standard Input in the following format:


N K


Output

Print the answer modulo 924844033.

Examples

Input

3 1


Output

2


Input

4 1


Output

5


Input

4 2


Output

9


Input

4 3


Output

14


Input

425 48


Output

756765083

Solution (in CPP):

Solution:
#include<cstdio>
const int N=4007,P=924844033;
int f[N][N][2],vis[N];
void inc(int&a,int b){a+=b-P,a+=a>>31&P;}
void dec(int&a,int b){a-=b,a+=a>>31&P;}
int mul(int a,int b){return 1ll*a*b%P;}
int main()
{
    int n,k,x,y=0,ans=0;
    scanf("%d%d",&n,&k),x=(n-1)/k+1,f[0][0][1]=1;
    for(int i=((n-1)%k+1)*2;i;--i) vis[y+=x]=1;
    for(;y<2*n;) vis[y+=x-1]=1;
    for(int i=1;i<=2*n;++i)
	for(int j=0;j<=n;++j)
	{
	    f[i][j][0]=f[i][j][1]=f[i-1][j][1];
	    if(!vis[i-1]&&j) inc(f[i][j][1],f[i-1][j-1][0]);
	}
    for(int i=0,k=1;i<=n;k=mul(k,++i)) ((n-i)&1? dec:inc)(ans,mul(f[2*n][n-i][1],k));
    printf("%d",ans);
}