#include<bits/stdc++.h>
using namespace std;
#define int long long
const int mod=9999973;
const int N=105;
inline int read()
{
int s=0,w=1;char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}
while(ch>='0'&&ch<='9')s=(s<<1)+(s<<3)+(ch^48),ch=getchar();
return s*w;
}
int n,m,f[N][N][N],ans;
signed main()
{
n=read();m=read();
f[0][0][0]=1;
for(int i=1;i<=n;i++)
{
for(int j=0;j<=m;j++)
{
for(int k=0;k+j<=m;k++)
{
f[i][j][k]+=f[i-1][j][k];f[i][j][k]%=mod;
if(k>=1)f[i][j][k]+=f[i-1][j+1][k-1]*(j+1);f[i][j][k]%=mod;
if(j>=1)f[i][j][k]+=f[i-1][j-1][k]*(m-j+1-k);f[i][j][k]%=mod;
if(k>=2)f[i][j][k]+=f[i-1][j+2][k-2]*((j+1)*(j+2)/2);f[i][j][k]%=mod;
if(j>=2)f[i][j][k]+=f[i-1][j-2][k]*((m-j-k+1)/2*(m-j-k+2));f[i][j][k]%=mod;
if(k>=1)f[i][j][k]+=f[i-1][j][k-1]*(m-j-k+1)*(j);f[i][j][k]%=mod;
}
}
}
for(int i=0;i<=m;i++)
{
for(int j=0;j+i<=m;j++)
{
ans+=f[n][i][j];ans%=mod;
}
}
cout<<ans<<"\n";
return 0;
}