#include <bits/stdc++.h>
using namespace std;
bool can[2010][2010];
int p[2010][2010];
char f[2010][2010];
int main() {
  int n, k;
  string s;
  cin >> n >> k >> s;
  can[0][1005] = 1;
  for (int i = (int)0; i <= (int)n - 1; ++i)
    for (int j = (int)-k + 1; j <= (int)k - 1; ++j) {
      if (!can[i][j + 1005]) continue;
      if (s[i] == '?') {
        can[i + 1][j + 1 + 1005] = 1;
        p[i + 1][j + 1 + 1005] = 1;
        f[i + 1][j + 1 + 1005] = 'W';
        can[i + 1][j - 1 + 1005] = 1;
        p[i + 1][j - 1 + 1005] = -1;
        f[i + 1][j - 1 + 1005] = 'L';
        can[i + 1][j + 1005] = 1;
        p[i + 1][j + 1005] = 0;
        f[i + 1][j + 1005] = 'D';
      } else {
        if (s[i] == 'W') {
          can[i + 1][j + 1 + 1005] = 1;
          p[i + 1][j + 1 + 1005] = 1;
          f[i + 1][j + 1 + 1005] = 'W';
        } else if (s[i] == 'L') {
          can[i + 1][j - 1 + 1005] = 1;
          p[i + 1][j - 1 + 1005] = -1;
          f[i + 1][j - 1 + 1005] = 'L';
        } else {
          can[i + 1][j + 1005] = 1;
          p[i + 1][j + 1005] = 0;
          f[i + 1][j + 1005] = 'D';
        }
      }
    }
  if (can[n][1005 + k] || can[n][1005 - k]) {
    string res = "";
    int a = n, b = (can[n][1005 + k] ? 1005 + k : 1005 - k), cc;
    while (a > 0) {
      cc = p[a][b];
      a -= 1;
      b -= cc;
      if (cc == 1)
        res += 'W';
      else if (cc == -1)
        res += 'L';
      else
        res += 'D';
    }
    reverse(res.begin(), res.end());
    puts(res.c_str());
  } else
    puts("NO");
  return 0;
}
