베개 쌓기
시간 제한3초메모리 제한1024 MB
베개 종류 N개의 부드러움 값과 목표 값 C가 주어질 때, 부드러움이 C인 베개를 제외하고 쌓아서 합이 C가 되는지 판별합니다.
문제
Eleanor는 최근 가장 아끼던 베개를 잃어버렸다. 그녀는 베개에 까다로워서 베개를 부드러움으로 분류한다. 잃어버린 베개의 부드러움은 였고, 이 정확한 부드러움이 아니면 잠들지 못한다. 그녀가 쓸 수 있는 다른 종류의 베개 중에는 부드러움이 인 것이 없을 수도 있다. 그래서 베개를 여러 개 쌓아서 자는 방법을 쓰려고 한다.
부드러움이 인 베개를 이 순서대로 쌓으면, 결과 부드러움은 다음과 같다.
즉 번째 베개는 자신의 부드러움에 을 곱한 값을 올림하여 더한다. 는 를 만족하는 가장 작은 정수 이다.
Eleanor는 돈이 많아서 쓸 수 있는 베개 종류마다 개수 제한 없이 쓸 수 있다. 베개를 쌓아서 부드러움 에 도달할 수 있는지 판단하라.
입력
첫 줄에 두 정수 과 가 주어진다(, ). 은 Eleanor가 쓸 수 있는 베개 종류의 수이고, 는 원하는 부드러움이다. 둘째 줄에는 개의 정수 이 주어진다(). 각 값은 해당 베개 종류의 부드러움이다.
출력
베개를 쌓아서 부드러움 를 만들 수 있으면 YES를, 없으면 NO를 출력한다.