#include <iostream>

using namespace std;
int w[1000];
int m;
int n;

bool kuwa(int s) {
  int t = s;
  int l = m;
  for(int i = 0; i < n; i++) {
    if (t - w[i] >= 0) {
      t -= w[i];
    }else{
      t = s;
      l --;
      i --;
      if (l <= 0) {
        return false;
      }
    }
  }
  return true;
}

int bin_search(int min, int max) {
  int s = (min + max) / 2;
  if (min + 1 == max) {
    if (kuwa(min)) {
      return min;
    }else{
      return max;
    }
  }
  if (! kuwa (s) ) {
    return bin_search(s, max);
  } else {
    return bin_search(min,  s);
  }
}

int main() {
  while (1) {
    cin >> m >> n;
    if ((n == 0) && (m == 0)) {
      return 0;
    }
    for (int i = 0; i < n; i++) {
      cin >> w[i];
    }
    cout << bin_search(0, 100000000) << endl;
      
  }
}