_{This problem is a programming version of Problem 114 from projecteuler.net}

A row measuring units in length has red blocks with a minimum length of units placed on it, such that any two red blocks (which are allowed to be different lengths) are separated by at least one black square. There are exactly seventeen ways of doing this for and .

How many ways can a row measuring units in length be filled? As the answer can be extremely large, print it modulo .

**NOTE**: Although the example above does not lend itself to the possibility, in general it is permitted to mix block sizes. For example, on a row measuring eight units in length (and ) you could use red (), black (), and red ().

**Input Format**

The input contains two space separated integers and .

**Constraints**

**Output Format**

Print one integer - the answer to a problem modulo .

**Sample Input**

```
7 3
```

**Sample Output**

```
17
```