#include <bits/stdc++.h>
using namespace std;
string ans, s;
int dp[1005][2005];
int n, k;
bool solve(int i, int dif) {
  if (i == n) return abs(dif) == k;
  if (abs(dif) == k) return 0;
  int &ret = dp[i][dif + 1000];
  if (~ret) return ret;
  ret = 0;
  if (s[i] == '?' || s[i] == 'W') ret |= solve(i + 1, dif + 1);
  if (s[i] == '?' || s[i] == 'L') ret |= solve(i + 1, dif - 1);
  if (s[i] == '?' || s[i] == 'D') ret |= solve(i + 1, dif);
  return ret;
}
void build(int i, int dif) {
  if (i == n) return;
  if ((s[i] == '?' || s[i] == 'W') && solve(i + 1, dif + 1)) {
    ans += 'W';
    build(i + 1, dif + 1);
    return;
  }
  if ((s[i] == '?' || s[i] == 'L') && solve(i + 1, dif - 1)) {
    ans += 'L';
    build(i + 1, dif - 1);
    return;
  } else if ((s[i] == '?' || s[i] == 'D') && solve(i + 1, dif)) {
    ans += 'D';
    build(i + 1, dif);
    return;
  }
}
int main() {
  cin >> n >> k;
  cin >> s;
  memset(dp, -1, sizeof dp);
  if (!solve(0, 0))
    cout << "NO" << endl;
  else {
    build(0, 0);
    cout << ans << endl;
  }
  return 0;
}
