#include <bits/stdc++.h>
using namespace std;
const long long N = 1005;
const long long m = 1000;
long long dp[N][2 * N];
string s, res;
long long n, k;
long long ispos(long long pos, long long win, long long los) {
  if (pos == n and abs(win - los) == k)
    return 1;
  else if (pos == n or abs(win - los) == k)
    return 0;
  long long &can = dp[pos][win - los + m];
  if (can != -1) return can;
  can = 0;
  if (s[pos] == '?') {
    if (ispos(pos + 1, win + 1, los)) {
      can = 1;
      res[pos] = 'W';
    } else if (ispos(pos + 1, win, los + 1)) {
      can = 1;
      res[pos] = 'L';
    } else if (ispos(pos + 1, win, los)) {
      can = 1;
      res[pos] = 'D';
    } else
      can = 0;
  } else {
    res[pos] = s[pos];
    if (s[pos] == 'W')
      can |= ispos(pos + 1, win + 1, los);
    else if (s[pos] == 'L')
      can |= ispos(pos + 1, win, los + 1);
    else
      can |= ispos(pos + 1, win, los);
  }
  return can;
}
void solve() {
  cin >> n >> k;
  cin >> s;
  res = s;
  memset(dp, -1, sizeof(dp));
  if (ispos(0, 0, 0))
    cout << res << '\n';
  else
    cout << "NO" << '\n';
}
int32_t main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  { solve(); }
  return 0;
}
