#include <cstdio>
#include <cstring>
#include <queue>
using namespace std;

#define INF 999999

bool f;
int tim[10][2], num[10][2],M,N,T,L;

int GetParkPos(int t)
{
	for(int i=0; i<M; i++)
	{
		if(tim[i][0]==0&&tim[i][1]==0) return i;
	}
	
	int pos=-1;
	int dif=INF;
	for(int i=0; i<M; i++)
	{
		if(tim[i][0]!=0&&tim[i][1]!=0) continue;
		int tm=(tim[i][0]==0?tim[i][1]:tim[i][0]);
		if(tm>t&&tm-t<dif)
		{
			dif=tm-t;
			pos=i;
		}
	}
	
	if(pos!=-1) return pos;
	
	for(int i=0; i<M; i++)
	{
		if(tim[i][0]!=0&&tim[i][1]!=0) continue;
		int tm=(tim[i][0]==0?tim[i][1]:tim[i][0]);
		if(t-tm<dif)
		{
			dif=t-tm;
			pos=i;
		}
	}
	
	return pos;
}

void Parking(int pos, int t, int n)
{
	if(tim[pos][0]!=0)
	{
		tim[pos][1]=tim[pos][0];
		num[pos][1]=num[pos][0];
	}
	
	tim[pos][0]=t;
	num[pos][0]=n;
}

void Leaving()
{
	for(int i=0; i<M; i++)
	for(int j=0; j<2; j++)
	{
		if(j==1&&tim[i][0]!=0) break;
		if(tim[i][j]==0) continue;
		
		if(tim[i][j]<=T)
		{
			if(f) printf(" ");
			f=true;
			printf("%d", num[i][j]+1);
			tim[i][j]=0;
			num[i][j]=0;
			L--;
		}
	}
}

int main()
{
	while(scanf("%d%d", &M, &N), (M||N))
	{
		memset(tim, 0, sizeof(tim));
		memset(num, 0, sizeof(num));
		
		int car[100];
		for(int i=0; i<N; i++)
			scanf("%d", &car[i]);
			
		int cnt=0;
		L=N;
		T=0;
		f=false;
		queue<int> q;
		while(L)
		{
			Leaving();
			if(T%10==0 && cnt<N)
			{
				q.push(cnt);
				cnt++;
			}
			while(!q.empty())
			{
				int n=q.front();
				int p=GetParkPos(T+car[n]);
				if(p==-1) break;
				
				Parking(p, T+car[n], n);
				q.pop();
			}
			
			T++;
		}
		
		puts("");
	}
}