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.

Input

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).

Output

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.

Examples

Input

3 5
1 2 3


Output

YES


Input

1 6
5


Output

NO


Input

4 6
3 1 1 3


Output

YES


Input

6 6
5 5 5 5 5 5


Output

YES

Note

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.
import	java.io.*;
public	class	Main{
	public	static	void	main(String[]args){
		ScanReader	in=new	ScanReader(System.in);
		int	n=in.nextInt(),m=in.nextInt(),i,j;
		if(n<m){
			boolean[]T,P=new	boolean[m],Q=new	boolean[m];
			for(P[0]=Q[0]=true;0<n--;T=P,P=Q,Q=T){
				if(P[i=(m-in.nextInt()%m)%m])	break;
				for(j=m;0<--j;Q[j]=P[j]||P[(i+j)%m]);
			}
		}
		System.out.print(0>n?"NO":"YES");
	}
}
class	ScanReader{
	private	final	BufferedReader	br;
	private	final	StreamTokenizer	st;
	public	ScanReader(Reader	in){
		if(null==in)	throw	new	NullPointerException();
		st=new	StreamTokenizer(br=new	BufferedReader(in));
	}
	public	ScanReader(InputStream	in){
		this(null!=in?new	InputStreamReader(in):null);
	}
	private	boolean	eof(){
		int	ttype=0;
		try{ttype=st.nextToken();}
		catch(IOException	e){throw	new	RuntimeException(e);}
		return	StreamTokenizer.TT_EOF==ttype;
	}
	public	int	nextInt(){
		if(eof())	throw	new	java.util.NoSuchElementException();
		return	(int)st.nval;
	}
}
