#include <bits/stdc++.h>

using namespace std;

    template <typename Iterator>
inline bool next_combination(const Iterator first, Iterator k, const Iterator last)
{
    if ((first == last) || (first == k) || (last == k))
        return false;
    Iterator itr1 = first;
    Iterator itr2 = last;
    ++itr1;
    if (last == itr1)
        return false;
    itr1 = last;
    --itr1;
    itr1 = k;
    --itr2;
    while (first != itr1)
    {
        if (*--itr1 < *itr2)
        {
            Iterator j = k;
            while (!(*itr1 < *j)) ++j;
            std::iter_swap(itr1,j);
            ++itr1;
            ++j;
            itr2 = k;
            std::rotate(itr1,j,last);
            while (last != j)
            {
                ++j;
                ++itr2;
            }
            std::rotate(k,itr2,last);
            return true;
        }
    }
    std::rotate(first,k,last);
    return false;
}

int main(){
    vector<int> v;
    for(int i=0; i < 10; i++) v.push_back(i);

    int n, s;
    while(cin >> n >> s){
        int ret = 0;
        do{
            int sum = 0;
            for(int j=0; j < n; j++) sum += v[j]*(j+1);
            if(sum < s) continue;
            else if(sum == s){ret++; continue;}
            vector<int> vv;
            for(int i=0; i < n; i++) vv.push_back(v[i]);
            do{
                int sum = 0;
                for(int j=0; j < n; j++) sum += vv[j]*(j+1);
                if(sum == s) ret++;
            }while(next_permutation(vv.begin(), vv.end()));
        }while(next_combination(v.begin(), v.begin()+n, v.end()));
        cout << ret << endl;
    }
}