#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <vector>
#include <map>
using namespace std;

#define MAX 110
typedef pair<int, int> P;
int n, m;
char chair[MAX];
bool isZero;

bool isCanSit(int x){
  if(chair[x] == '#') return true;
  return false;
}

void A(){
  for(int i = 0 ; i < n ; i++){
    if(isCanSit(i)){
      chair[i] = 'A';
      isZero = false;
      return;
    }
  }
}

bool isNext(int x){
  if(chair[x-1] == 'A' || chair[x+1] == 'A') return true;
  return false;
}

void B(){
  for(int i = n-1 ; i >= 0 ; i--){
    if(isCanSit(i) && !isNext(i)){
      chair[i] = 'B';
      isZero = false;
      return;
    }
  }
  
  for(int i = 0 ; i < n ; i++){
    if(isCanSit(i)){
      chair[i] = 'B';
      isZero = false;
      return;
    }
  }
}


void C(){
  if(isZero){
    chair[n/2] = 'C';
    isZero = false;
    return;
  }
  
  for(int i = 0 ; i < n ; i++){
    if(!isCanSit(i)){
      if(isCanSit(i+1)){
	if(i+1 != n){
	  chair[i+1] = 'C';
	  isZero = false;
	  return;
	}
	else{
	  chair[i-1] = 'C';
	  isZero = false;
	  return;
	}
      }
      else if(isCanSit(i-1)){
	chair[i-1] = 'C';
	isZero = false;
	return;
      }
    }
  }
}

bool DcanSitNoneNext(int x){
  if(x == n-1){
    if(chair[x-1] == '#') return true;
  }
  if(x == 0){
    if(chair[x+1] == '#') return true;
 }  
  if(chair[x-1] == '#' && chair[x+1] == '#') return true;
  return false;
}

int calcDisD(int x){
  int ret, cnt = 0;
  for(int i = x-1 ; i >= 0 ; i--){ // left
    if(chair[i] != '#') break;
    else cnt++;
  }
  
  ret = cnt;
  cnt = 0;
  
  for(int i = x+1 ; i < n ; i++){ // right
    if(chair[i] != '#') break;
    else cnt++;
  }
  
  ret = max(ret, cnt);
  return ret;
}

void D(){
  if(isZero){
    chair[0] = 'D';
    isZero = false;
    return;
  }
  
  int sit;
  int dis[MAX];
  fill(dis, dis+MAX, MAX);
  for(int i = 0 ; i < n ; i++){
    if(chair[i] != '#'){
      for(int j = 0 ; j < n ; j++){
	dis[j] = min(dis[j], abs(i-j));
      }
    }
  }  
  int d = 0;
  for(int i = 0 ; i < n ; i++){
    if(dis[i] > d){
      sit = i;
      d = dis[i];
    }
  }
  chair[sit] = 'D';
  return;
}
  
void init(){
  fill(chair, chair+MAX, '#');
  isZero = true;
}

void display(){
  for(int i = 0 ; i < n ; i++){
    cout << chair[i];
  }
  cout << endl;
}

int main(){
  char p;
  while(cin >> n >> m){
    if(n == 0 && m == 0) break;
    init();
    for(int i = 0 ; i < m ; i++){
      cin >> p;
      if(p == 'A') A();
      if(p == 'B') B();
      if(p == 'C') C();
      if(p == 'D') D();
      //      display();
    }
    display();
  }
  return 0;
}