#include using namespace std; using ll = long long; void print_list(vector a){ for(auto i:a){ cout << i << ' '; } cout << '\n'; } int m = 1000000007; vector>> gula; ll objem(ll d, ll sr, ll o) { if (gula[d][sr][o] != -1) { return gula[d][sr][o]; } ll res = 0; if (d == 0){ res = o; } else { res = res + objem(d-1,sr,o) % m; for(int x=1; x*x <= sr; x++){ res = (res + 2*objem(d-1,sr-x*x,o+x)) % m; } } gula[d][sr][o] = res; return res; } int main(){ ll d,r; cin>>d>>r; gula = vector>>(d+1,vector>(r*r*d+1,vector(r*d+1,-1))); cout<< objem(d,r*r,0) <<'\n'; }