#include "bits/stdc++.h"
#define in std::cin
#define out std::cout
#define rep(i,N) for(LL i=0;i<N;++i)
typedef long long int LL;

const LL mod = 1000000007;
LL n, s;
std::vector<std::vector<std::vector<LL>>>memo;

LL dp(LL i, LL j, LL k)
{
	if (i == n)
	{
		if (j == 0 && k == s) return 1;
		return 0;
	}
	if (k > s) return 0;
	if (memo[i][j][k] != -1) return memo[i][j][k];
	LL res1 = dp(i + 1, j, k + j * 2);
	LL res2 = dp(i + 1, j + 1, k + (j + 1) * 2);
	LL res3 = (dp(i + 1, j, k + j * 2) * 2 * j) % mod;
	LL res4 = (j >= 1 ? (dp(i + 1, j - 1, k + (j - 1) * 2) * j * j) % mod : 0);
	return memo[i][j][k] = (res1 + res2 + res3 + res4) % mod;
}

int main()
{
	in >> n >> s;
	memo.resize(n + 1, std::vector<std::vector<LL>>(n + 1, std::vector<LL>(s + 1, -1)));
	out << dp(0, 0, 0) << std::endl;
}
