#include <cstdio>
#include <algorithm>
#include <map>
using namespace std;
int n, s, d[21][21];
int chk[21];
int dt[2][1<<12][21000], mx;
int dp(int x, int sum, int stat)
{
    if( x == n ) return sum == s;
    if( dt[0][stat][sum] ) return dt[1][stat][sum];
    dt[0][stat][sum] = 1;
    int &ret = dt[1][stat][sum];
    for(int i = 0 ; i < n ; i++ )
        if( !(stat&(1<<i)) ) ret += dp(x+1, sum+(i+1)*d[n-1][x], stat|(1<<i));
    return ret;
}
int main()
{
    freopen(".20.in","r",stdin);
    freopen(".20.out","w",stdout);
    scanf("%d%d", &n,&s);
    d[0][0] = 1;
    for(int i = 1 ; i < n ; i++ )
        for(int j = 0 ; j <= i ; j++ )
            d[i][j] = d[i-1][j] + d[i-1][j-1];
    printf("%d\n", dp(0, 0, 0));
    return 0;
}
