B. Modulo Sum
combinatorics; data structures; dp; two pointers
You are given a sequence of numbers a1, a2, ..., an, and a number m.Check if it is possible to choose a non-empty subsequence aij such that the sum of numbers in this subsequence is divisible by m.
The first line contains two numbers, n and m (1 ≤ n ≤ 106, 2 ≤ m ≤ 103) — the size of the original sequence and the number such that sum should be divisible by it.The second line contains n integers a1, a2, ..., an (0 ≤ ai ≤ 109).
In the single line print either ""YES"" (without the quotes) if there exists the sought subsequence, or ""NO"" (without the quotes), if such subsequence doesn't exist.
In the first sample test you can choose numbers 2 and 3, the sum of which is divisible by 5.In the second sample test the single non-empty subsequence of numbers is a single number 5. Number 5 is not divisible by 6, that is, the sought subsequence doesn't exist.In the third sample test you need to choose two numbers 3 on the ends.In the fourth sample test you can take the whole subsequence.