#include <cstdio>
#include <cstring>
int n, s;
int memo[10][10];
bool used[10];
int dfs(int cnt, int sum) {
    if (cnt==n&&sum==s) return 1;
    else if (cnt==n) return 0;
    int res=0;
    cnt++;
    for (int i=0; i<10; i++) {
        if (!used[i]) {
            used[i]=true;
            if (memo[cnt-1][i]!=-1) res+=memo[cnt-1][i];
            else res+=dfs(cnt, sum+cnt*i);
            used[i]=false;
        }
    }
    return res;
}
int main() {
    while (scanf("%d%d",&n,&s)!=EOF) {
        memset(used, 0, sizeof(used));
        memset(memo, -1, sizeof(memo));
        int res=0;
        for (int i=0; i<10; i++) {
            used[i]=true;
            memo[0][i]=dfs(1,i);
            res+=memo[0][i];
            used[i]=false;
        }
        printf("%d\n",res);
    }
}