#include <bits/stdc++.h>
using namespace std;
const int maxn = 1010;
int n, k;
char s[maxn];
unordered_map<int, int> dp[maxn], path[maxn];
int main() {
  while (~scanf("%d%d", &n, &k)) {
    for (int i = 1; i <= n; i++) {
      dp[i].clear();
      path[i].clear();
    }
    scanf("%s", s + 1);
    dp[0][0] = 1;
    for (int i = 1; i <= n; i++) {
      for (int j = -k; j <= k; j++) {
        if (i != n && (j == -k || j == k)) continue;
        if (s[i] == 'L') {
          dp[i][j] = dp[i - 1][j + 1];
          path[i][j] = 1;
        }
        if (s[i] == 'W') {
          dp[i][j] = dp[i - 1][j - 1];
          path[i][j] = -1;
        }
        if (s[i] == 'D') {
          dp[i][j] = dp[i - 1][j];
          path[i][j] = 0;
        }
        if (s[i] == '?') {
          if (dp[i][j] < dp[i - 1][j + 1]) {
            dp[i][j] = dp[i - 1][j + 1];
            path[i][j] = 1;
          }
          if (dp[i][j] < dp[i - 1][j - 1]) {
            dp[i][j] = dp[i - 1][j - 1];
            path[i][j] = -1;
          }
          if (dp[i][j] < dp[i - 1][j]) {
            dp[i][j] = dp[i - 1][j];
            path[i][j] = 0;
          }
        }
      }
    }
    if (dp[n][k] + dp[n][-k] == 0) {
      puts("NO");
      continue;
    }
    string tmp;
    int j = dp[n][k] ? k : -k;
    for (int i = n; i >= 1; i--) {
      if (path[i][j] == 0)
        tmp += 'D';
      else if (path[i][j] == 1)
        tmp += 'L';
      else if (path[i][j] == -1)
        tmp += 'W';
      j += path[i][j];
    }
    for (int i = tmp.length() - 1; i >= 0; i--) printf("%c", tmp[i]);
    printf("\n");
  }
}
