시험
시간 제한1초메모리 제한128 MB
최대 36개의 양의 시험 점수 중 합이 T 이상이 되는 부분집합의 개수를 센다. 각 점수는 10^13까지 커질 수 있다.
문제
이반이 마침내 대학에 합격했다. 이반의 교육 과정에는 정확히 개의 시험이 있다. 시험마다 난이도가 다를 수 있어서, 서로 다른 시험은 서로 다른 점수를 줄 수 있다.
이반이 모든 시험을 볼 필요는 없지만, 시험에서 얻는 점수는 최종 학점의 일부이므로 중요하다. 좋은 학점을 받으려면 총 점 이상이 필요하다. 이반은 자신의 실력을 확신하므로, 어떤 시험을 보기로 하면 그 시험의 만점을 받는다.
이반은 얻는 점수의 합이 점 이상이 되도록 어떤 시험을 보고(그리고 어떤 시험을 건너뛸지) 고르는 방법이 몇 가지인지 알고 싶다. 선택한 시험의 집합이 다르면 서로 다른 방법으로 센다. 아무 시험도 보지 않으면 얻는 점수는 점이다.
이 방법의 수를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 두 양의 정수 ()과 가 주어진다.
둘째 줄에 각 시험이 주는 점수를 나타내는 개의 양의 정수가 공백 하나로 구분되어 주어진다. 각 점수는 이하이다.
출력
얻은 점수의 합이 이상이 되도록 이반이 시험의 집합을 고르는 방법의 수를 정수 하나로 출력한다.