You are given a sequence of numbers *a*<sub class="lower-index">1</sub>, *a*<sub class="lower-index">2</sub>, ..., *a*<sub class="lower-index">*n*</sub>, and a number *m*.

Check if it is possible to choose a non-empty subsequence *a*<sub class="lower-index">*i*<sub class="lower-index">*j*</sub></sub> such that the sum of numbers in this subsequence is divisible by *m*.
The first line contains two numbers, *n* and *m* (1 ≤ *n* ≤ 10<sup class="upper-index">6</sup>, 2 ≤ *m* ≤ 10<sup class="upper-index">3</sup>) — the size of the original sequence and the number such that sum should be divisible by it.

The second line contains *n* integers *a*<sub class="lower-index">1</sub>, *a*<sub class="lower-index">2</sub>, ..., *a*<sub class="lower-index">*n*</sub> (0 ≤ *a*<sub class="lower-index">*i*</sub> ≤ 10<sup class="upper-index">9</sup>).
import sys
import timeit        

TIME=False

def main():
    n, m = (int(x) for x in sys.stdin.readline().split())
    a = list((int(x) % m for x in sys.stdin.readline().split()))
    possible_modulos = set()
    possible_modulos.add(a[0])

    for x in a[1:]:
        for modulo in list(possible_modulos):
            possible_modulos.add((modulo + x) % m)
            possible_modulos.add(x % m)
    if 0 in possible_modulos:
        print("YES")
    else:
        print("NO")
        


    
    

        
    
    


if __name__ == "__main__":
    if TIME:
        execution_time = timeit.timeit(main, number=1)
        print(f"Execution time: {execution_time}")
    else:
        main()