#include<iostream>
#include<cstdlib>
#include<cmath>
using namespace std;

int N;
int table[128];

void doA() {
  for(int i = 0; i < N; i++) if( table[i] == '#' ) {
      table[i] = 'A';
      return;
    }
}

void doB() {
  for(int i = N - 1; i >= 0; i--) {

    if( table[i] == '#' ) {
      
      bool a = false;
      if( i - 1 >= 0 && table[i - 1] == 'A' ) a = true;
      if( i + 1 < N && table[i + 1] == 'A' ) a = true;
      
      if( ! a ) {
        table[i] = 'B';
        return;
      }
    }    
  }

  for(int i = 0; i < N; i++) if( table[i] == '#' ) {
      table[i] = 'B';
      return;
    }

}

void doC() {
  for(int i = 0; i < N; i++) {
    if( table[i] != '#' ) {
      if( i + 1 < N && table[i + 1] == '#' ) {
        table[i + 1] = 'C'; return;
      }

      if( i - 1 < N && table[i - 1] == '#' ) {
        table[i - 1] = 'C'; return;
      }

    }
  }

  if( N & 1 ) table[(N + 1) / 2 - 1] = 'C';
  else table[N / 2] = 'C';
}

void doD() {
  static int temp[128];
  for(int i = 0; i < 128; i++) temp[i] = 987654321;
  
  for(int i = 0; i < N; i++) {
    if( table[i] != '#' ) 
      temp[i] = -1;
    else 
      for(int j = 0; j < N; j++) 
        if( table[j] != '#' ) {
          temp[i] = min( temp[i], abs(i - j));
        }
  }
  
  int best = 0;
  for(int i = 0; i < N; i++) 
    if( temp[best] < temp[i] )
      best = i;
  
  table[best] = 'D';
}

int main() {
  for(int M; cin >> N >> M, (N || M); ) {

    for(int i = 0; i < N; i++) table[i] = '#';

    for(int m = 0; m < M; m++) {
      char ch; cin >> ch;
      if( ch == 'A' ) doA();
      if( ch == 'B' ) doB();
      if( ch == 'C' ) doC();
      if( ch == 'D' ) doD();
    }
    for(int i = 0; i < N; i++) cout << (char)(table[i]); cout << endl;
  }
}