// 2011/07/21 Tazoe

#include <iostream>
using namespace std;

int main()
{
	while(true){
		int n, m;
		cin >> n >> m;
		if(n==0&&m==0)
			break;

		char C[100];
		for(int i=0; i<n; i++)
			C[i] = '#';

		for(int i=0; i<m; i++){
			char a;
			cin >> a;

			bool flg;
			switch(a){
				case 'A':
					for(int j=0; j<n; j++)
						if(C[j]=='#'){
							C[j] = a;
							break;
						}
					break;
				case 'B':
					flg = false;
					for(int j=n-1; j>=0; j--)
						if(C[j]=='#'&&(j==0||C[j-1]!='A')&&(j==n-1||C[j+1]!='A')){
							C[j] = a;
							flg = true;
							break;
						}
					if(!flg)
						for(int j=0; j<n; j++)
							if(C[j]=='#'){
								C[j] = a;
								break;
							}
					break;
				case 'C':
					if(i==0){
						C[n/2] = a;
						break;
					}
					for(int j=0; j<n; j++)
						if(C[j]!='#'&&j!=n-1&&C[j+1]=='#'){
							C[j+1] = a;
							break;
						}
						else if(C[j]!='#'&&j!=0&&C[j-1]=='#'){
							C[j-1] = a;
							break;
						}
					break;
				case 'D':
					if(i==0){
						C[0] = a;
						break;
					}
					int D[100];
					for(int j=0; j<n; j++){
						if(C[j]!='#'){
							D[j] = 0;
							continue;
						}
						int d = 0;
						for(int k=j; k<n; k++, d++)
							if(C[k]!='#')
								break;
						D[j] = d;
						d = 0;
						for(int k=j; k>=0; k--, d++)
							if(C[k]!='#')
								break;
						if(d<D[j])
							D[j] = d;
					}
					int maxD = -1;
					int maxI = -1;
					for(int j=0; j<n; j++)
						if(maxD<D[j]){
							maxD = D[j];
							maxI = j;
						}
					C[maxI] = a;				
					break;
			}
		}

		for(int i=0; i<n; i++)
			cout << C[i];
		cout << endl;
	}

	return 0;
}