#include<stdio.h> #include<algorithm> #include<iostream> #include<string.h> #include<math.h> using namespace std;
typedef long long ll; const int maxn = 1020000; const int INF = 0x3f3f3f3f3f3f3f3f; int n,m; ll dp[maxn],maxx[maxn]; int arr[maxn];
int main() { int t = 1 ; while (~scanf("%d%d",&m,&n)) { memset(dp,0,sizeof(dp)); memset(maxx,0,sizeof(maxx)); for (int i = 1 ; i <= n ; i ++) { scanf("%d",&arr[i]); } for (int i = 1 ; i <= m ; i ++) { maxx[i-1] = -INF; for (int j = i ; j <= n ; j ++) dp[j] = max(dp[j-1],maxx[j-1])+arr[j]; maxx[i-1] = -INF; for (int j = i ; j <= n ; j ++) maxx[j] = max(dp[j],maxx[j-1]); } ll ans = -INF; for (int i = m ; i <= n ; i ++) { ans = max(ans,dp[i]); } printf("%lld\n",ans); }