나무
Time Limit: 5 SecMemory Limit: 1024 MiB

문제

세훈이의 꿈은 직접 지은 오두막에서 알로하 MT를 진행하는 것이다. 오두막을 지으려면 나무가 만큼 필요하다. 어느 날, 세훈이는 꿈을 이루기 위해 나무 그루를 일렬로 동시에 심은 뒤, 왼쪽 나무부터 차례대로 라고 번호를 매겼다.

나무를 심은 직후 번 나무의 높이는 이며, 매 단위 시간마다 만큼 자란다. 즉, 나무를 심은 뒤 시간이 만큼 지나면 번째 나무의 높이는 가 된다. 세훈이는 나무 그루 중 오두막을 짓기 위해 사용할 나무 몇 그루를 선택한 뒤, 나무가 충분히 자라면 선택한 나무 전부를 동시에 베려한다. 단, 사용하고 남은 나무들이 듬성듬성 심어져 있으면 미관상 좋지 않으니 세훈이는 나무 그루 중 연속된 일부분을 선택할 계획이다.

사용하기로 선택한 나무는 남기지 않고 모두 베어내야 하며, 지구를 지키기 위해 베어낸 나무는 모두 사용해야 한다. 따라서, 나무를 벨 때 선택한 나무 높이의 합은 정확히 이어야 한다. 나무를 베는 시각은 세훈이 마음대로 정할 수 있으며, 나무를 심은 직후 바로 벨 수도 있다.

세훈이는 문득 이러한 조건을 모두 만족하도록 사용할 나무를 고를 수 있는지 궁금해졌다. 오두막을 설계하느라 바쁜 세훈이 대신 여러분이 문제를 풀어 보자!

입력

첫째 줄에 나무의 수와 필요한 나무 길이를 나타내는 두 정수 이 공백으로 구분되어 주어진다.

둘째 줄에는 나무의 초기 높이를 나타내는 정수 가 공백으로 구분되어 주어진다.

셋째 줄에는 매 단위시간마다 나무가 자라는 높이를 나타내는 정수 이 공백으로 구분되어 주어진다.

출력

조건을 만족하도록 나무를 고를 수 있다면 YES, 불가능하다면 NO를 출력한다.

노트

첫 번째 예제에서, 나무를 심고 시간이 만큼 지난 뒤 번 나무부터 번 나무까지 베면 정확히 만큼 나무를 얻을 수 있으므로 조건에 맞게 나무를 고를 수 있다.

Example Input 1
7 314
3 1 4 1 5 9 2
6 5 3 5 8 9 7
Example Output 1
YES
Example Input 2
5 100
10 10 10 10 10
11 11 11 11 11
Example Output 2
NO