Problem:
Score : 100 points

Problem Statement

Snuke has N integers: 1,2,\ldots,N.
He will choose K of them and give those to Takahashi.

How many ways are there to choose K consecutive integers?

Constraints

All values in input are integers.

1 \leq K \leq N \leq 50

Input

Input is given from Standard Input in the following format:

N K

Output

Print the answer.

Sample Input 1

3 2

Sample Output 1

2

There are two ways to choose two consecutive integers: (1,2) and (2,3).

Sample Input 2

13 3

Sample Output 2

11

Solution in C (GCC 5.4.1) (judge verdict: Wrong Answer)

long M=1e9+7,D[1<<20],P[1<<20],s=5e8+4;i,x,p;c[1<<20];
main(a)
{
for(gets(D);i<1<<20;)D[i++]=1;
for(;~scanf("%d",&a);c[x]=p)P[x^=a]=(P[x]+(D[x]=(D[x]+P[x]*(p-c[x]))%M))%M,(p++,s=s*2%M);
for(;--i;)s+=P[i];
printf("%d",x?D[x]:s%M);
}