#include <algorithm>
#include <bitset>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <ctime>
#include <climits>
#include <deque>
#include <functional>
#include <iomanip>
#include <iostream>
#include <list>
#include <map>
#include <numeric>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <string>
#include <utility>
#include <vector>
#define ALL(A)		(A).begin(),(A).end()
#define DUMP(A)    cout<<#A<<"="<<(A)<< endl
#define SIZE(A)    (int)((A).size())
using namespace std;
typedef long long ll;

int ret;
bool used[10];
int S;
void solve(int nsum,int upto,int at){
    if(at==upto){
        if(nsum==S) ret++;
    }else{
        for(int i=0;i<10;i++){
            if(!used[i]){
                used[i]=true;
                solve(nsum+i*(at+1),upto,at+1);
                used[i]=false;
            }
        }
    }
}

int main(){
    int N;
    while(scanf("%d%d",&N,&S)!=-1){
        ret=0;
        for(int i=0;i<10;i++){
            used[i]=false;
        }
        solve(0,N,0);
        printf("%d\n",ret);
    }
}