In the event of technical difficulties with Szkopuł, please contact us via email at szkopul@fri.edu.pl.

If you are familiar with IRC chat, the support team is also reachable on PIRC network (`irc.pirc.pl`

) in `#szkopul`

channel. If you are not, just use email.

Please do not ask us things like "how to solve task XYZ?".

Please remember that the support team has to sleep sometimes or go to work in real life.

John has got jars with candies. Each of the jars contains a different kind of candies (i.e. candies from the same jar are of the same kind, and candies from different jars are of different kinds). The -th jar contains candies. John has decided to eat some of his candies. He would like to eat at least of them but no more than . The problem is that John can't decide how many candies and of what kinds he would like to eat. In how many ways can he do it?

Your task is to write a program that:

- reads from the standard input the amount of candies in each of the jars, and integers and ,
- determines the number of ways John can choose the candies he will eat (satisfying the above conditions),
- writes the result to the standard output

The first line of input contains three integers: , and , separated by single spaces (, ). Each of the following lines contains one integer. Line contains integer - the amount of candies in the -th jar ().

Let be the number of different ways John can choose the candies to be eaten. The first and only line of output should contain one integer: mod 2004 (i.e. the remainder of divided by 2004).

For the input data:

2 1 3 3 5

the correct result is:

9

John can choose candies in the following ways:

*Task author: Marcin Michalski.*