#include <cstdio>

using namespace std;
int N,M;

long long put(long long a,long long b)
{
    long long x1 = a,x2 = 1;

    if(b == 0)return 1;
    if(b == 1) return a;
    while(b > 1)
        if(b&1)
        {
            x2 = x1 * x2;
            b^= 1;
        }
        else
        {
            x1 = x1 * x1;
            b >>= 1;
        }
    return x1 * x2;
}


int main()
{
    ///freopen("triples.in","r",stdin);

    scanf("%d%d",&N,&M);
    long long total = 0;
    for(int j = 2; j <= N; ++j)
    {
        if(j == 2)
        {
            for(int x = 0; x <= M; ++x)
                for(int y = x; y <= M; ++y)
                    for(int z = y; z <= M; ++z)
                        if(put(x,j) + put(y,j) == put(z,j))
                        {
                            total ++;
                        }
        }
        else
            total += (M + 1);
    }
    printf("%lld\n",total);

    return 0;
}