#include <bits/stdc++.h>

using namespace std;
using ll = long long;
const int N = 55;
const int mod = 1e9+7;
int add(int a, int b) {
	return a + b >= mod ? a + b - mod : a + b;
}
int mul(int a, int b) {
	return int(1LL * a * b % mod);
}
int fexp(int b, int e = mod - 2) {
	int ans = 1;
	while(e) {
		if(e & 1) ans = mul(ans, b);
		b = mul(b, b);
		e /= 2;
	}
	return ans;
}

int dp[N][N][N*N];

int f(int i, int j, int k) {
	if(k < 0 or j < 0) return 0;
	if(i == 0) return j == 0 and k == 0;
	int &ans = dp[i][j][k];
	if(~ans) return ans;
	ans = 0;
	ans = add(ans, f(i - 1, j, k - 2 * j));
	ans = add(ans, mul(j, f(i - 1, j, k - 2 * j)));
	ans = add(ans, mul(j, f(i - 1, j, k - 2 * j)));
	ans = add(ans, mul(j, mul(j, f(i - 1, j - 1, k - 2*(j-1)))));
	ans = add(ans, f(i - 1, j + 1, k - 2 * (j + 1)));
	return ans;
}

int main() {
	memset(dp, -1, sizeof dp);
	int n, k;
	scanf("%d %d", &n, &k);
	printf("%d\n", f(n, 0, k));
}
