#include <iostream>
#include <cstring>
#include <vector>
using namespace std;

int data[10][2];
int num[10][2];
int m,n;
vector<int> ans;
int go(){
	for(int i = 0 ; i < m ; i++){
		for(int j = 0 ; j < 2 ; j++){
			if(data[i][j] > 0) data[i][j]--;
		}
	}
	for(int i = 0 ; i < m ; i++){
		for(int j = 0 ; j < 2 ; j++){
			if(j == 0){
				if(data[i][j] == 0)
					data[i][j] = -1 , ans.push_back(num[i][j]);
			}else{
				if(data[i][j] == 0 && data[i][0] ==  -1)
					data[i][j] = -1 , ans.push_back(num[i][j]);
			}
		}
	}
}
int view(){
	for(int j = 0 ; j < 2; j++){
		for(int i = 0 ; i < n ; i++)
			cout << data[i][j] << " ";
		cout << endl;
	}
	cout << "------" << endl;
}
int find(int t,int p){
	for(int i = 0 ; i < m ; i++){
		if(data[i][1] == -1){ data[i][1] = t; num[i][1] = p; return 0;}
	}
	int s = -1;
	for(int i = 0 ; i < m ; i++){
		if(data[i][0] != -1 || data[i][1] < t) continue;
		if( s == -1 || data[i][1] < data[s][1] ){ 
			s = i;
		}
	}
	if(s != -1){
		data[s][0] = t;
		num[s][0] = p;
		return 1;
	}

	for(int i = 0 ; i < m ; i++){
		if(data[i][0] != -1) continue;
		if( s == -1 || data[i][1] > data[s][1] ){ 
			s = i;
		}
	}
	if(s != -1){
		data[s][0] = t;
		 num[s][0] = p; 
		return 2;
	}
	
	return -1;

}
int main(){
	while(cin >> m >> n , m){
		ans.clear();
		memset(data,-1,sizeof(data));
		for(int i = 0 ; i < n ; i++){
			int t; cin >> t;
			for(int w = 0 ; w < 10 ; w++)go();
			while(!~find(t,i)){
				go();
			}
			//view();
		}
		while(ans.size() < n){
			go();
			//view();
		}
		for(int i = 0 ; i < n ; i++)
			cout << ans[i]+1 << (i==n-1?"\n":" ");
	}
}