#include <bits/stdc++.h>
using namespace std;
bool exceed(long long x, long long y, long long m) { return x >= m / y + 1; }
long long n, k;
string s;
long long dp[1005][2005];
int zero = 1002;
int main(void) {
  ios::sync_with_stdio(0);
  cin >> n >> k >> s;
  s = "#" + s;
  for (long long(i) = (0); (i) <= (n); (i)++)
    for (long long(j) = (-k); (j) <= (k); (j)++) dp[i][zero + j] = -1e18;
  dp[0][zero + 0] = 0;
  for (long long(i) = (0); (i) <= (n - 1); (i)++) {
    for (long long(j) = (-k); (j) <= (k); (j)++) {
      for (long long(l) = (-1); (l) <= (1); (l)++) {
        if (dp[i][zero + j] < -1e18 / 2) continue;
        if (s[i + 1] != '?') {
          if (s[i + 1] != 'W' && l == 1) continue;
          if (s[i + 1] != 'L' && l == -1) continue;
          if (s[i + 1] != 'D' && l == 0) continue;
        }
        long long nj = j + l;
        if (abs(nj) > k) continue;
        if (i + 1 != n && abs(nj) == k) continue;
        dp[i + 1][zero + nj] = j;
      }
    }
  }
  long long p = -1e18;
  if (dp[n][zero + k] > -1e18 / 2) p = k;
  if (dp[n][zero - k] > -1e18 / 2) p = -k;
  if (p < -1e18 / 2) {
    cout << "NO" << endl;
    return 0;
  }
  for (int i = n; i >= 1; i--) {
    if (dp[i][zero + p] == p) s[i] = 'D';
    if (dp[i][zero + p] < p) s[i] = 'W';
    if (dp[i][zero + p] > p) s[i] = 'L';
    p = dp[i][zero + p];
  }
  cout << s.substr(1) << endl;
  return 0;
}
