#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
const int maxn=1e6+7;
const int inf=INT_MAX;
const ll inff=1e18;
const ll mod=1e9+7;
#define pii pair<int,int>
#define mkp make_pair
#define F first
#define S second
#define pb push_back
#define sz(v) ((int)(v).size())
#define all(v) (v).begin(),(v).end()
#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define int ll
//#define endl '\n'

int n,K;
int dp[52][107][2517];

int32_t main()
{
    IOS
    cin>>n>>K;
    dp[0][0][0]=1;
    for (int i=0;i<n;i++)
        for (int j=0;j<=n;j++)
            for (int k=0;k<=n*n;k++)
        {
            dp[i+1][j+2][k+j+2]=(dp[i+1][j+2][k+j+2]+dp[i][j][k])%mod;
            dp[i+1][j][k+j]=(dp[i+1][j][k+j]+(j+1)*dp[i][j][k])%mod;
            if (j>=2) dp[i+1][j-2][k+j-2]=(dp[i+1][j-2][k+j-2]+((j/2)*(j/2))%mod*dp[i][j][k])%mod;
        }
    cout<<dp[n][0][K]<<endl;
}
