#include <bits/stdc++.h>
#define rep(i,n)for(int i=0;i<(n);i++)
#define INF 0x3f3f3f3f
#define INFL 0x3f3f3f3f3f3f3f3f
#define MOD 1000000007
using namespace std;
typedef long long ll;
typedef pair<int,int>P;

map<int,ll>dp[60][60];
int main(){
	int n,K;cin>>n>>K;
	dp[0][0][0]=1;
	rep(i,n)rep(j,i+1){
		for(auto p:dp[i][j]){
			if(j){
				(dp[i+1][j][p.first]+=p.second*j*2%MOD)%=MOD;
				(dp[i+1][j-1][p.first+i*2]+=p.second*j%MOD*j%MOD)%=MOD;
			}
			(dp[i+1][j][p.first]+=p.second)%=MOD;
			(dp[i+1][j+1][p.first-i*2]+=p.second)%=MOD;
		}
	}
	cout<<dp[n][0][K]<<endl;
}