#include<cstdio>
#include<iostream>
#include<vector>
#include<string>
#include<map>
#include<algorithm>

//3 9 5 3 8 2 1 6 9 7 4

using namespace std;

int main(){
	int DP[101][21];
	int dansu,kansu;
	while(1){
		scanf("%d%d",&dansu,&kansu);
		if(dansu==0){
			break;
		}
		int hon[101];
		for(int i=1;i<=kansu;i++){
			scanf("%d",&hon[i]);
		}
		int atu[101];
		atu[0]=0;
		for(int i=1;i<=kansu;i++){
			atu[i]=atu[i-1]+hon[i];
		}
		for(int i=1;i<=kansu;i++){
			for(int j=1;j<=dansu;j++){
				DP[i][j]=99999;
			}
		}
		for(int i=1;i<=kansu;i++){
			DP[i][1]=atu[i];
		}
		for(int i=1;i<=dansu;i++){
			DP[1][i]=atu[1];
		}
		
		for(int i=2;i<=kansu;i++){
			for(int j=2;j<=dansu;j++){
				for(int k=1;k<i;k++){
					DP[i][j]=min(max(DP[k][j-1],atu[i]-atu[k]),DP[i][j]);
				}
			}
		}
		
		/*
		for(int i=1;i<=kansu;i++){
			for(int j=1;j<=dansu;j++){
				printf("%6d",DP[i][j]);
			}
			puts("");
		}
		for(int i=1;i<=kansu;i++){
			printf("%d ",atu[i]);
		}
		puts("");
		*/
		
		printf("%d\n",DP[kansu][dansu]);
	}
}