#include <stdio.h>
#include <vector>

using namespace std;

vector < int > grupa;

int main()
{
    freopen("zetoni.in", "r", stdin );
    freopen("zetoni.out", "w", stdout );

    int n, k, res = 0;

    scanf("%d%d", &n, &k );

    grupa. push_back( k );

    while ( n -- )
    {
        int visina;
        scanf("%d", &visina );

        grupa. push_back( visina );
    }

    grupa. push_back( k );

    for ( int i = 0; i < grupa. size() - 1; i ++ )

        while ( i < grupa. size() - 1 && grupa[ i ] == grupa[ i + 1 ] ) grupa. erase( grupa. begin() + i + 1 );

   while ( grupa. size() > 1 )

        for ( int i = 0; i + 2 < grupa. size(); i ++ )

            while ( i + 2 < grupa. size() && grupa[ i ] > grupa[ i + 1 ] )

                if ( grupa[ i + 2 ] >= grupa[ i ] )
                {
                    res += grupa[ i ] - grupa[ i + 1 ];

                    grupa. erase( grupa. begin() + i + 1 );

                    if ( grupa[ i + 1 ] == grupa[ i ] ) grupa. erase( grupa. begin() + i + 1 );
                }
                else if ( grupa[ i + 2 ] > grupa[ i + 1 ] )
                {
                    res += grupa[ i + 2 ] - grupa[ i + 1 ];

                    grupa. erase( grupa. begin() + i + 1 );
                }
                else break;

    printf("%d\n", res );

    return 0;
}
