include <cstdio>
include <cmath>

int DP[12][1030][331];
int slove(int k,int u,int s){
	if(n>=11) return 0;
	if(s>=331) return 0;
	int res=0;
	if(s<0)return 0;
	if(DP[k][u][s]>=0) return DP[k][u][s];
	if(k==n) {
		if((s%k)==0&&((int)pow(2,(s/k))&u)==0&&s/k<10){
			res=1;
			//printf("%d %d %d hit\n",k,u,s);
		}
	} else {
		for(int i=0;i<10;i++){
			if(((int)pow(2,i)&u)==0){
				res+=slove(k+1,u+pow(2,i),s-i*k);
			}
		}
	}
	DP[k][u][s]=res;
	return res;
}
int main() {
	int m;
	int bn=-1;
	while(scanf("%d %d",&n,&m)!=EOF){
		if(bn!=n){
			for(int x=0;x<12;x++){
				for(int y=0;y<1030;y++)
					for(int z=0;z<331;z++){
						DP[x][y][z]=-1;
					}
			}
		}
		printf("%d\n",slove(1,0,m));
		fflush(stdout);
		bn=n;
	}
	return 0;
}