Wolfram Language (Mathematica), 56 49 46 4343 41 bytes
2 bytes golfed thanks to J42161217
f[n_,a_]=If[n<=0n_~f~a_=If[n<1,1+Sign@n,Tr[f[n-#,a]&/@a]] Initial solution:
Length[Join@@Permutations/@IntegerPartitions[#,∞,#2]]&