#include #include using namespace std; typedef long long int ll; #define MOD 1000000007LL int main() { int d, r; cin >> d >> r; vector> dp(r*r+1, vector(d+1, 0)); vector> ways(r*r+1, vector(d+1, 0)); for (int var=0; var<=d; var++){ ways[0][var] = 1; } for (int x=1; x<=r*r; x++){ for (int var=1; var<=d; var++){ for (int val=0; val*val<=x; val++){ // krat 2 ak vie byt val kladne aj zaporne, tj je nenulove ways[x][var] += ways[x - val * val][var - 1] << (int(val) > 0); dp[x][var] += (dp[x - val * val][var - 1] + val * ways[x - val * val][var - 1]) << (int(val > 0)); dp[x][var] %= MOD; } dp[x][var] %= MOD; ways[x][var] %= MOD; } } ll result = 0; for (int i=0; i<=r*r; i++){ result += dp[i][d]; } cout << result % MOD << '\n'; }