#include <iostream>
using namespace std;

int bit_one(int b){
    int r = 0;
    while( b ){
        r += b%2;
        b >>= 1;
    }
    return r;
}

int dp[400][1 << 10];

void set(){
    for(int i = 0; i < 300; i++){
        for(int j = 0; j < (1 << 10); j++){
            dp[i][j] = 0;
        }
    }
    dp[0][0] = 1;
    for(int i = 0; i < 300; i++){
        for(int j = 0; j < (1 << 10); j++){
            for(int k = 0; k < 10; k++){
                if( dp[i][j] && (j >> k)%2 == 0 ){
                    dp[i + k * (bit_one(j) + 1)][j|(1 << k)] += dp[i][j];
                }
            }
        }
    }
}

int main(){
    set();
    int n, s;
    while( cin >> n >> s ){
        int ans = 0;
        for(int i = 0; i < (1 << 10); i++){
            if( bit_one( i ) == n ){
                ans += dp[s][i];
            }
        }
        cout << ans << endl;
    }
    return 0;
}