#include <iostream>
#include <algorithm>
#define MAX_N 10
#define MAX_S 330

using namespace std;

int n, s;
int dp[MAX_S+1][1<<10];
int dp2[MAX_S+1][1<<10];
int sum[MAX_N][MAX_S+1];
void init(){
  n=MAX_N;
  s=MAX_S;
  fill(dp[0], dp[MAX_S+1], 0);
  fill(sum[0], sum[MAX_N], 0);
  dp[0][0]=1;
  for(int i=0;i<n;i++){
    for(int j=0;j<=s;j++){
      for(int k=0;k<1<<10;k++) dp2[j][k]=dp[j][k];
      fill(dp[j], dp[j+1], 0);
    }
    for(int j=0;j<10;j++){
      int d=(i+1)*j;
      for(int b=0;b<1<<10;b++){
	if(((1<<j)&b)==0){
	  for(int k=0;k+d<=s;k++){
	    dp[k+d][(1<<j)|b]+=dp2[k][b];
	  }
	}
      }
    }
    for(int j=0;j<=s;j++){
      for(int b=0;b<1<<10;b++){
	sum[i][j]+=dp[j][b];
      }
    }
  }
}

main(){
  init();
  while(cin >> n >> s){
    if(n<=10 && s<=330){
      cout << sum[n-1][s] << endl;
    }else{
      cout << 0 << endl;
    }
  }
  return 0;
}