#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1030;
int n, k;
char s[MAXN];
int dp[MAXN][2 * MAXN];
int main() {
  scanf("%d %d %s", &n, &k, s + 1);
  int Loss = MAXN - k, Win = MAXN + k;
  memset(dp, -1, sizeof(dp));
  dp[0][MAXN] = 0;
  for (int i = 1; i <= n; i++) {
    for (int j = Loss; j <= Win; j++) {
      if (s[i] == 'W' || s[i] == '?') {
        if (j - 1 <= Loss || dp[i - 1][j - 1] < 0)
          ;
        else if (dp[i - 1][j - 1] < 0)
          ;
        else
          dp[i][j] = j - 1;
      }
      if (s[i] == 'D' || s[i] == '?') {
        if (j == Loss || j == Win)
          ;
        else if (dp[i - 1][j] < 0)
          ;
        else
          dp[i][j] = j;
      }
      if (s[i] == 'L' || s[i] == '?') {
        if (j + 1 >= Win)
          ;
        else if (dp[i - 1][j + 1] < 0)
          ;
        else
          dp[i][j] = j + 1;
      }
    }
  }
  if (dp[n][Win] > 0) {
    for (int i = n, pos = Win; i >= 1; i--) {
      if (dp[i][pos] < pos) s[i] = 'W';
      if (dp[i][pos] == pos) s[i] = 'D';
      if (dp[i][pos] > pos) s[i] = 'L';
      pos = dp[i][pos];
    }
    puts(s + 1);
  } else if (dp[n][Loss] > 0) {
    for (int i = n, pos = Loss; i >= 1; i--) {
      if (dp[i][pos] < pos) s[i] = 'W';
      if (dp[i][pos] == pos) s[i] = 'D';
      if (dp[i][pos] > pos) s[i] = 'L';
      pos = dp[i][pos];
    }
    puts(s + 1);
  } else {
    puts("NO");
  }
}
