#include <bits/stdc++.h>
using namespace std;
const int NMAX = 2222;
const int OFFSET = 1111;
bool dp[NMAX][NMAX];
char buff[NMAX];
char ans[NMAX][NMAX];
int main() {
  int N, K;
  scanf("%d%d", &N, &K);
  scanf("%s", buff + 1);
  dp[0][OFFSET] = true;
  for (int i = 1; i <= N; i++) {
    char cur = buff[i];
    if (cur == 'W') {
      for (int j = -K + 1; j < K; j++)
        if (dp[i - 1][j + OFFSET]) {
          dp[i][j + 1 + OFFSET] = true;
          ans[i][j + 1 + OFFSET] = 'W';
        }
    } else if (cur == 'L') {
      for (int j = -K + 1; j < K; j++)
        if (dp[i - 1][j + OFFSET]) {
          dp[i][j - 1 + OFFSET] = true;
          ans[i][j - 1 + OFFSET] = 'L';
        }
    } else if (cur == 'D') {
      for (int j = -K + 1; j < K; j++)
        if (dp[i - 1][j + OFFSET]) {
          dp[i][j + OFFSET] = true;
          ans[i][j + OFFSET] = 'D';
        }
    } else {
      for (int j = -K + 1; j < K; j++)
        if (dp[i - 1][j + OFFSET]) {
          dp[i][j + 1 + OFFSET] = true;
          ans[i][j + 1 + OFFSET] = 'W';
          dp[i][j + OFFSET] = true;
          ans[i][j + OFFSET] = 'D';
          dp[i][j - 1 + OFFSET] = true;
          ans[i][j - 1 + OFFSET] = 'L';
        }
    }
  }
  if (!(dp[N][K + OFFSET] || dp[N][-K + OFFSET])) return !printf("NO");
  int st = dp[N][K + OFFSET] ? K : -K;
  for (int i = N; i >= 1; i--) {
    buff[i] = ans[i][st + OFFSET];
    if (buff[i] == 'W')
      st--;
    else if (buff[i] == 'L')
      st++;
  }
  printf("%s", buff + 1);
}
