#include<iostream> #include<cstring> #include<algorithm> #include<cstdio> #include<vector> #include<queue> #include<stack> #include<bitset> usingnamespace std; #define int long long typedeflonglong ll; #define MAXN 57000 #define pb push_back #define pii pair<int,int> #define fi first #define se second #define mp make_pair #define inf 0x3f3f3f3f #define cmx( a , b ) a = max( a , b ) #define cmn( a , b ) a = min( a , b ) #define P 239 voidread( signed& x ){ scanf("%d",&x); } voidread( ll& x ){ scanf("%lld",&x); } int n , k; int dp[MAXN][31]; signedmain(){ freopen("peaks.in","r",stdin); freopen("peaks.out","w",stdout); cin >> n >> k; n %= 56882; dp[0][0] = 1; for( int i = 1 ; i <= n ; ++ i ) for( int j = 1 ; j <= k ; ++ j ) dp[i][j] = ( 2 * j * dp[i - 1][j] % P + ( i - 2 * ( j - 1 ) + P ) % P * dp[i - 1][j - 1] % P ) % P; printf("%d\n",dp[n][k]); } /* * Things you should pay attention to * inf is big enough? * out of bounds? * long long ? */