import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
public class Main {
/*请完成下面这个函数,实现题目要求的功能
当然,你也可以不按照下面这个模板来作答,完全按照自己的想法来 ^-^
******************************开始写代码******************************/
static int[][] dp;
static int schedule(int m,int[] array) {
int len = array.length;
dp = new int[len][m+1];
dp[0][1] = array[0];
for (int i=1; i<len; i++){
dp[i][1] = dp[i-1][1] + array[i];
}
for (int i=0; i<len; i++){
for (int j=2; j<=m; j++){
int maxValue = Integer.MAX_VALUE;
for (int k=0; k<i; k++){
maxValue = Math.min(maxValue, Math.max(dp[k][j-1], dp[i][1]-dp[k][1]));
}
dp[i][j] = maxValue;
}
}
return dp[len-1][m];
}
/******************************结束写代码******************************/
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int m = in.nextInt();
int size = in.nextInt();
int[] array = new int[size];
for(int i = 0; i < size; i++) {
array[i] = in.nextInt();
}
int res = schedule(m,array);
System.out.println(String.valueOf(res));
}
}