﻿/*
    1. Szám. ki kétféleképpen:
        S = 1/(1*2) + 1/(2*3) + 1/(3*4) + ... + 1/(n*(n+1))
        S = 1/(1*3) + 1/(2*4) + 1/(3*5) + ... + 1/(n*(n+2))

    2. Adott n és egy n elemű sorozat. Melyik az az elem, amelyik
    a legtöbb számjeggyel rendelkezik? (Holtverseny esetén írjuk
    ki a bal oldalit.)

    3. https://www.pbinfo.ro/probleme/860/pachete1

    Plusz:
        https://www.pbinfo.ro/probleme/1923/egale
        https://www.pbinfo.ro/probleme/945/baze
*/


/*
Szám. ki kétféleképpen:
    S = 1/(1*2) + 1/(2*3) + 1/(3*4) + ... + 1/(n*(n+1))
*/
/*
#include <iostream>
#include <iomanip>
using namespace std;

int main()
{
    int n;
    cin >> n;

    double s = 0;

    for (int i = 1; i <= n; i++) {
        s = s + 1.0 / (i*(i+1));
    }

    cout << s << endl;
    cout << (double) n / (n+1) << endl;

    // több tizedesjegy kiírásával
    /*
    cout << fixed << setprecision(10)
         << s << endl;
    cout << fixed << setprecision(10)
         << (double) n / (n+1) << endl;


    return 0;
}
*/

/*
Szám. ki kétféleképpen:
    S = 1/(1*3) + 1/(2*4) + 1/(3*5) + ... + 1/(n*(n+2))
*/
/*
#include <iostream>
#include <iomanip>
using namespace std;

int main()
{
    int n;
    cin >> n;

    double s = 0;

    for (long long i = 1; i <= n; i++) {
        s = s + 1.0 / (i*(i+2));
    }

    cout << s << endl;
    cout << 1.0/2 * (
        1 + 1.0/2 - 1.0/(n+1) - 1.0/(n+2)
    ) << endl;

    cout << "-------------\n";
    // több tizedesjegy kiírásával

    cout << fixed << setprecision(10)
         << s << endl;
    cout << fixed << setprecision(10)
         << 1.0/2 * (
                1 + 1.0/2 - 1.0/(n+1) - 1.0/(n+2)
            ) << endl;

    return 0;
}
*/

/*
2. Adott n és egy n elemű sorozat.
   Melyik az az elem, amelyik a legtöbb számjeggyel rendelkezik?
   Holtverseny esetén írjuk ki a bal oldalit.)

    Pl.
        5
        13 4 126 999 52
        kimenet: 126

        4
        1 2 13 5
        kimenet: 13

    Ötlet:
        n-szer:
            1. beolvasunk
            2. kiszámoljuk, hogy hány számjegye van
            3. megtartjuk azt, akinek a legtöbb van

        2. - számjegyekre bontás
        3. - maximumkeresés
*/
/*
#include <iostream>
using namespace std;

int main()
{
    int n;
    cin >> n;

    int max_hany_szj = 0;
    int ki_a_max;

    for (int i = 1; i <= n; i++) {
        int szam;
        cin >> szam;
        int eredeti = szam;

        int hany_szj = 0;
        do {
            szam = szam / 10;
            hany_szj++;
        } while (szam > 0);

        //cout << hany_szj << " ";
        if (hany_szj > max_hany_szj) {
            max_hany_szj = hany_szj;
            ki_a_max = eredeti;
        }
    }

    //cout << max_hany_szj << endl;
    cout << ki_a_max << endl;

    return 0;
}
*/

// 3.
#include <iostream>
using namespace std;

int main()
{
    int n, c;  // n - kamionok száma; c - kapacitás
    cin >> n >> c;

    int nr = 1; // hány kamion kell (eddig)
    int mennyi = 0; // mennyi van pakolva a legutóbb megkezdett kamionra

    for (int i = 1; i <= n; i++) {
        int akt;
        cin >> akt;  // aktuális csomag mérete

        if (akt + mennyi <= c)  // ha még felfér a megkezdett kamionra
            mennyi += akt;
        else {  // új kamionra rakjuk
            ++nr;
            mennyi = akt;
        }
    }

    cout << nr << endl;
    return 0;
}
