Our local ninja Naruto is learning to make shadow-clones of himself and is facing a dilemma. He only has a limited amount of energy (e) to spare that he must entirely distribute among all of his clones. Moreover, each clone requires at least a certain amount of energy to function (m) . Your job is to count the number of different ways he can create shadow clones. Example:

e=7;m=2

ans = 4

The following possibilities occur: Make 1 clone with 7 energy

Make 2 clones with 2, 5 energy

Make 2 clones with 3, 4 energy

Make 3 clones with 2, 2, 3 energy.

Note: <2, 5> is the same as <5, 2>. Make sure the ways are not counted multiple times because of different ordering.

**Answer**

`int count(int n, int k){ if((n<k)||(k<1)) return 0; else if ((n==k)||(k==1)) return 1; else return count(n-1,k-1)+ count(n-k,k); // logic behind this? } int main() { int e,m; // e is total energy and m is min energy per clone scanf("%d %d", &e, &m); int max_clones= e/m; int i,ans=0; for(i=1;i<=max_clones;i++){ int available = e - ((m-1)*i); // why is it (m-1)*i instead of m*i ans += count(available, i); } return 0; } `