#include <iostream>
using namespace std;
const int mod = 1000000007;
int dp[55][1255][55];
int main() {
	int N, K;
	cin >> N >> K;
	if (K % 2 == 1) {
		cout << 0 << endl;
	}
	else {
		K >>= 1;
		dp[0][0][0] = 1;
		for (int i = 0; i < N; ++i) {
			for (int j = 0; j <= K; ++j) {
				for (int k = 0; k <= i; ++k) {
					dp[i + 1][j + k][k + 1] = (dp[i + 1][j + k][k + 1] + dp[i][j][k]) % mod;
					dp[i + 1][j + k][k] = (dp[i + 1][j + k][k] + (2LL * k + 1LL) * dp[i][j][k]) % mod;
					if (k >= 1) {
						dp[i + 1][j + k][k - 1] = (dp[i + 1][j + k][k - 1] + 1LL * k * k * dp[i][j][k]) % mod;
					}
				}
			}
		}
		cout << dp[N][K][0] << endl;
	}
	return 0;
}