#if 1
#include <stdio.h>
#include <stdbool.h>


void input( int [] , int );
int q_sj( int [] , int , int );
void initialize( int [] , int );


bool dayu( int , int );
bool xiaoyu( int , int );
int q_jzxb( int [] , int , bool (*)( int , int ) );


int main(void)
{
    int n ,m  ;
    scanf("%d%d", &n , &m );
    int jsl[n];
    input( jsl , n );
    printf("%d\n", q_sj( jsl , n , m ) );
    return 0;
}


bool xiaoyu( int a , int b )
{
    return a < b ;
}


bool dayu( int a , int b )
{
    return a > b ;
}


int q_jzxb( int a[] , int n, bool (* p_f )( int , int ) )
{
    int zdxb = 0;
    int i;
    for( i = 1 ; i < n ; i ++ )
    {
        if( p_f( a[i] , a[zdxb] ) == true )
        {
            zdxb = i ;
        }
    }
    return zdxb ;
}


void initialize( int a[] , int n )
{
    while( n -- )
    {
        * a ++ = 0; 
    }
}


int q_sj( int jsl[] , int n , int m )
{
    int tap[m];
    initialize( tap , m );
    int i;
    for( i = 0 ; i < n ; i ++ )
    {
        tap[ q_jzxb( tap , m , xiaoyu ) ] += jsl[i] ;
    }
    return tap[ q_jzxb( tap , m , dayu ) ] ;
}


void input( int a[] , int n)
{
    while( n -- )
    {
        scanf("%d", a ++ );
    }
}
#endif