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));
    }
}