Problema A - Clube de leitura

Chegou o dia da inauguração da biblioteca da Dona Alexandra. Finalmente! O Gabriel não pensava noutra coisa desde que soube da sua abertura. Podiam pensar que ele é um miúdo mesmo aplicado como tu e eu, mas na verdade ele tem outros interesses...

Acontece que a Dona Alexandra usa uma estratégia incomum para incentivar os mais jovens a ler: aquando a devolução dos livros, o leitor recebe uma quantidade de pontos igual ao número de páginas do livro que leu. Para que servem estes pontos? Podem ser trocados por prémios que a Dona Alexandra achou serem do agrado do público alvo. E acertou em cheio, o Gabriel não consegue tirar os olhos da linda Zbox que está exposta na montra.

No entanto, para evitar que os leitores mais novos se aventurem em obras demasiado "pesadas" para o seu nível, correndo assim o risco de perder o gosto pela leitura, a Dona Alexandra tem uma regra: leitores como o Gabriel só podem ler um determinado livro se já tiverem lido todos os livros mais pequenos que esse (claro que se pode ler o livro mais pequeno da biblioteca sem ter lido nenhum outro).

Por exemplo, se a Dona Alexandra tiver livros com 52, 6, 26, 12 e 13 páginas e se forem necessários 50 pontos para ganhar a Zbox, o Gabriel tem de começar por ler o segundo livro (com 6 páginas), pois é o menor, acumulando 6 pontos. Depois lê o próximo mais pequeno, que é quarto livro, somando mais 12 pontos e ficando com 18 pontos no total. De seguida, tem de ler o quinto, ficando com 31 pontos, o que ainda não é suficiente. Por último, lê o terceiro livro, perfazendo um total de 57 pontos, o que é suficiente para receber o seu prémio.

Para se manter motivado, o Gabriel quer saber qual é a sua meta, ou seja, quantos livros vai ter de ler no mínimo para ganhar a Zbox. Será que pode contar com a tua ajuda?

O Problema

Dados os N livros que constituem o stock da Dona Alexandra e o número de pontos Z que a Zbox vale, devolve o número de livros que o Gabriel tem de ler para receber o prémio.

Input

Na primeira linha vêm dois inteiros, N que representa o número de livros que existem na biblioteca e Z que representa o valor da Zbox.

Segue-se uma linha com N inteiros Pi, que representam o número de páginas do i-ésimo livro.

Nota: é garantido que o Gabriel consegue ganhar a Zbox.

Output

O output deve conter uma linha com apenas um inteiro, que representa o número mínimo de livros que o Gabriel tem de ler.

Restrições

São garantidos os seguintes limites em todos os casos de teste que irão ser colocados ao programa:

1 ≤ N ≤ 100 000       Número de Livros
1 ≤ Pi ≤ 1 000 000       Número de páginas de um livro
1 ≤ Z ≤ 10 000 000       Valor da Zbox

Os casos de teste deste problema estão organizados em 3 grupos com restrições adicionais diferentes:

Grupo Número de Pontos Restrições adicionais
1 30 1 ≤ N ≤ 100
2 30 1 ≤ N ≤ 1 000
3 40 -

Input do Exemplo 1

5 50
52 6 26 12 13

Output do Exemplo 1

4

Explicação do Exemplo 1

Este exemplo corresponde ao mencionado no enunciado.

Input do Exemplo 2

7 73
20 42 11 67 22 53 20

Output do Exemplo 2

4

Explicação do Exemplo 2

O Gabriel começa por ler o terceiro livro, acumulando 11 pontos. Depois pode optar por ler o primeiro ou o sétimo livro, pois têm ambos o mesmo número de páginas. Imaginemos que optou pelo primeiro, ficando com 31 pontos. O próximo livro mais pequeno continua a ter 20 páginas, por isso agora tem de ler o sétimo, ficando com 51 pontos. De seguida, lê o quinto livro, somando mais 22 pontos, o que é suficiente para ficar com pelo menos 73 pontos. Ou seja, vai ter de ler 4 livros.


Qualificação para a final das ONI'2018
(12/04 a 14/04 de 2018)