#include <iostream>
using namespace std;

int m,n,bk[100];
int check(int hi,int lo) {
	int i,h=0,s;
	for (i=0;i<m;i++) {
		s=0;
		while(true) if (s+bk[h]<=(hi+lo)/2 && h<n) s+=bk[h++]; else break;
	}
	if (h==n) return 1;
	return 0;
}
int main() {
    int hi,lo,i;
    while(cin >> m >> n) {
		if (m==0) break;
		hi= 1500000; lo=0;
		for (i=0;i<n;i++) cin >> bk[i];
		for (i=0;i<22;i++) if (check(hi,lo)==1) hi=(hi+lo)/2; else lo=(hi+lo)/2;
		cout << hi << endl; 
	}	
	return 0;
}