//50
#include<iostream>
#include<stack>
#include<queue>

using namespace std;

struct C{
  int t,n;
};

int main(){
  for(int m,n;cin>>m>>n,m|n;){
    int o=0;
    stack<C> s[10];
    queue<C> que;
    for(int i=0;o!=n;i++){
      for(int j=0;j<m;j++){
	while(!s[j].empty()&&s[j].top().t<=i){
	  o++;
	  cout<<s[j].top().n<<((o==n)?'\n':' ');
	  s[j].pop();
	}
      }
      if(i%10==0&&i/10<n){
	int t;
	cin>>t;
	C a={t,i/10+1};
	que.push(a);
      }
      while(!que.empty()){
	C c=que.front();
	c.t+=i;
	int x=-1;
	for(int i=0;i<m;i++){
	  if(s[i].empty()){
	    s[i].push(c);
	    que.pop();
	    goto next;
	  }else if(s[i].size()==1){
	    int ct=s[i].top().t;
	    int xt=(x==-1)?0:s[x].top().t;
	    if(x==-1
	       ||(ct>=c.t&&(xt<c.t||ct-c.t<xt-c.t))
	       ||(xt<c.t&&ct<c.t&&xt<ct)){
	      x=i;
	    }
	  }  
	}
	if(x!=-1){
	  s[x].push(c);
	  que.pop();
	  goto next;
	}
	break;
      next:
	;
      }
    }
  }
  return 0;
}