from math import floor, asin, cos
from functools import cache

epsilon = 1e-6

def round(n):
    return floor(n * 1e5) / 1e5

@cache
def solve(radius, dim):
    if dim == 1:
        radius = floor(radius)
        return (radius * (radius + 1), radius * 2 + 1)
    
    sum, points = solve(radius, dim - 1)

    for x in range(1, floor(radius + epsilon) + 1):
        if x / radius >= 1.0:
            continue

        new_rad = cos(asin(x / radius)) * radius
        nsum, npoints = solve(round(new_rad), dim - 1)
        nsum += x * npoints
        sum += nsum * 2
        points += npoints * 2

    sum %= 10**9 + 7
    return sum, points

d, r = tuple(int(x) for x in input().split())
print(solve(r, d)[0])
