#include <bits/stdc++.h>
using namespace std;
bool dp[1005][2005];
bool vis[1005][2005];
long long mid = 1001;
long long n, k;
string A;
bool solve(long long idx, long long diff) {
  if (vis[idx][diff]) return dp[idx][diff];
  vis[idx][diff] = 1;
  bool &res = dp[idx][diff];
  if (diff == mid - k || diff == mid + k) {
    if (idx == n)
      return res = 1;
    else
      return res = 0;
  }
  if (A[idx] == 'W') res |= solve(idx + 1, diff + 1);
  if (A[idx] == 'L') res |= solve(idx + 1, diff - 1);
  if (A[idx] == 'D') res |= solve(idx + 1, diff);
  if (A[idx] == '?') {
    res |= solve(idx + 1, diff + 1);
    res |= solve(idx + 1, diff - 1);
    res |= solve(idx + 1, diff);
  }
  return res;
}
int main() {
  memset(dp, 0, sizeof(dp));
  memset(vis, 0, sizeof(vis));
  scanf("%lld%lld", &n, &k);
  cin >> A;
  bool status = solve(0, mid);
  if (!status) {
    cout << "NO\n";
    return 0;
  }
  string res = "";
  long long diff = mid;
  for (long long i = 0; i < (n); i++) {
    if (A[i] == 'W') diff++;
    if (A[i] == 'L') {
      diff--;
    }
    if (A[i] == '?') {
      if (solve(i + 1, diff + 1)) {
        res += 'W';
        diff++;
      } else if (solve(i + 1, diff - 1)) {
        res += 'L';
        diff--;
      } else {
        res += 'D';
      }
    } else {
      res += A[i];
    }
  }
  cout << res << endl;
  return 0;
}
