보트
면접 대비시간 제한1초메모리 제한2048 MB
두 명까지 탈 수 있고 무게 제한이 있는 보트로 모든 주민을 강 건너로 옮기는 최소 횟수를 구합니다.
문제
강이 위 바라레와 아래 바라레를 나누고 있다. 두 마을 사이에서 사람을 실어 나르기 위해 최대 두 명까지 탈 수 있고 무게 한도가 정해진 2인승 보트가 한 대 있다. 보트는 최소 한 명이 조종해야 하므로, 승객이 없으면 강을 건널 수 없다.
전국 바라레 축제는 위 바라레에서 열린다. 아래 바라레의 주민 모두가 이 축제에 참여하려 하며, 가능한 한 빨리 위 바라레로 이동해야 한다. 보트가 강을 건너는 횟수를 최소로 하여 모든 주민을 위 바라레로 옮기는 것이 과제이다.
입력
첫 번째 줄에 두 정수 과 가 주어진다. 은 아래 바라레 주민의 수()이고, 는 보트가 실을 수 있는 최대 무게()이다.
두 번째 줄에는 아래 바라레 주민들의 몸무게를 나타내는, 공백으로 구분된 개의 정수가 주어진다. 모든 몸무게는 이하의 양의 정수이다.
출력
모든 주민을 옮길 수 없으면 -1을 출력한다. 그렇지 않으면 아래 바라레의 모든 주민을 위 바라레로 옮기는 데 필요한 보트의 최소 강 횟단 횟수를 출력한다. 횡단은 양방향을 모두 센다.