#include<queue>
#include<cstdio>

#define rep(i,n) for(int i=0;i<(n);i++)

using namespace std;

enum {IN,OUT};
struct event{
	int id,io,t,pid; // 車の番号, 駐車か発車か, 時刻, 駐車スペースの番号
	bool operator<(const event &e)const{ // priority_queue に入れるので逆順
		if(t!=e.t)   return t>e.t;
		if(io!=e.io) return io==IN;
		if(io==IN) return id>e.id; // 駐車待ちをしている順に取り出す ( 車の番号の小さい順と一致する )
		else       return pid>e.pid; // 駐車スペースの番号が小さい順に取り出す
	}
};

int main(){
	for(int m,n;scanf("%d%d",&m,&n),m;){
		priority_queue<event> Q;
		int T[100]; // 駐車している時間
		rep(i,n){
			scanf("%d",T+i);
			Q.push((event){i,IN,10*i});
		}

		int park[10][2],dep[10][2]; // 駐車している車の番号, 出発時刻
		bool wait[10]={}; // 上段の車が待っているかどうか
		rep(i,m) rep(j,2) park[i][j]=-1;

		vector<int> ans;
		while(!Q.empty()){
			event e=Q.top(); Q.pop();
			if(e.io==IN){
				int i_opt=-1;
				rep(i,m) if(park[i][0]==-1) { i_opt=i; break; }
				if(i_opt!=-1){ // 一台も駐車されていないスペースがあるとき
					park[i_opt][0]=e.id;
					dep[i_opt][0]=e.t+T[e.id];
					Q.push((event){e.id,OUT,e.t+T[e.id],i_opt});
					continue;
				}

				i_opt=-1;
				rep(i,m) if(park[i][1]==-1 && dep[i][0]>=e.t+T[e.id]) {
					if(i_opt==-1 || dep[i_opt][0]>=dep[i][0]) i_opt=i;
				}
				if(i_opt==-1){
					rep(i,m) if(park[i][1]==-1) {
						if(i_opt==-1 || dep[i_opt][0]<=dep[i][0]) i_opt=i;
					}
				}
				if(i_opt!=-1){ // 上段に車がある駐車スペースのみ空いているとき
					park[i_opt][1]=park[i_opt][0];
					dep[i_opt][1]=dep[i_opt][0];
					park[i_opt][0]=e.id;
					dep[i_opt][0]=e.t+T[e.id];
					Q.push((event){e.id,OUT,e.t+T[e.id],i_opt});
					continue;
				}

				// 満車のとき
				Q.push((event){e.id,IN,e.t+1});
			}
			else{ // OUT
				if(park[e.pid][0]==e.id){ // 下段の車が発車するとき
					park[e.pid][0]=-1;
					ans.push_back(e.id);

					// 上段に車があれば下段に下ろす
					if(park[e.pid][1]!=-1){
						park[e.pid][0]=park[e.pid][1];
						dep[e.pid][0]=dep[e.pid][1];
						park[e.pid][1]=-1;
					}
					if(wait[e.pid]){ // 上段だった車がすでに待っていたとき
						wait[e.pid]=false;
						ans.push_back(park[e.pid][0]);
						park[e.pid][0]=-1;
					}
				}
				else{ // 上段の車が発車するとき
					wait[e.pid]=true;
				}
			}
		}

		rep(i,ans.size()) printf("%d%c",ans[i]+1,i<(int)ans.size()-1?' ':'\n');
	}

	return 0;
}