import std.stdio;
import std.algorithm;
import std.string;
import std.functional;
import std.array;
import std.conv;
import std.math;
import std.typecons;
import std.regex;
import std.range;

int n,s;
int saiki(int n1,int u,int m){
    if(n1 > s) return 0;
    else if(m==1){
	int d = s-n1;
	if(d <= 9 && (u & (1<<d))==0) return 1;
	else return 0;
    }else if(m==2){
	if(s-n1>26) return 0;
    }else if(m==3){
	if(s-n1>50) return 0;
    }else if(m==4){
	if(s-n1>80) return 0;
    }else if(m==5){
	if(s-n1>115) return 0;
    }

    int ans;
    for(int i=9;i>=0;i--){
	if((u & (1<<i))==0){
	    ans += saiki(n1+m*i,u|(1<<i),m-1);
	}
    }
    return ans;
}

void main(){
    while(true){
	auto ss = readln();
	if(stdin.eof()) break;
	int[] s1 = ss.split().to!(int[]);
	n = s1[0];
	s = s1[1];
	if(n <= 330)
	    writeln(saiki(0,0,n));
	else writeln(0);
    }
}