27a Olimpíada Brasileira de Informática
  Arquivos
Aldo tem N arquivos em seu computador, cada um com um tamanho em bytes. Ele quer dividir estes arquivos em pastas, porém o sistema do computador é velho e só aceita pastas com as duas seguintes limitações:
- Uma pasta pode ter no máximo dois arquivos
 - A soma dos tamanhos dos arquivos na pasta não pode exceder B bytes
 
Como ele tem muitos arquivos ele prefere não criar muitas pastas. Dado o tamanho dos arquivos, calcule o número mínimo possível de pastas.
Vamos supor um exemplo que temos os arquivos de tamanho 1, 2 e 3, e que o limite de bytes seja 3. A solução é colocar os dois primeiros arquivos juntos, totalizando apenas 2 pastas.
Entrada
A entrada consiste de duas linhas. A primeira linha contém os números inteiros N e B. A segunda linha contém N inteiros indicando o tamanho de cada arquivo.Saída
Seu programa deve escrever uma única linha na saída, contendo um único número inteiro, a quantidade mínima possível de pastas.Restrições
- 1 ≤ N ≤ 105
 - 1 ≤ B ≤ 109
 - Os arquivos terão tamanho entre 1 e B, inclusive
 
Informações sobre a pontuação
- Em um conjunto de casos de teste somando 20 pontos, N ≤ 10
 - Em um conjunto de casos de teste somando 50 pontos, N ≤ 1000
 
Exemplos
      Entrada
      3 3 1 2 3  | 
    
      Saída
      2  | 
    
      Entrada
      5 4 4 3 1 2 2  | 
    
      Saída
      3  |