#include <bits/stdc++.h>
using namespace std;
const int N = 1005;
long long int dp[N][2 * N], n, k;
string s;
long long int solve1(long long int id, long long int dif) {
  if (id == n) return abs(dif) == k;
  if (abs(dif) == k) return 0;
  long long int &ans = dp[id][dif + N];
  if (ans != -1) return ans;
  if (s[id] == 'W')
    ans = solve1(id + 1, dif + 1);
  else if (s[id] == 'L')
    ans = solve1(id + 1, dif - 1);
  else if (s[id] == 'D')
    ans = solve1(id + 1, dif);
  else
    ans =
        solve1(id + 1, dif) | solve1(id + 1, dif - 1) | solve1(id + 1, dif + 1);
  return ans;
}
void path(long long int id, long long int dif) {
  if (id == n) return;
  if (s[id] == 'W') {
    cout << 'W';
    return path(id + 1, dif + 1);
  } else if (s[id] == 'L') {
    cout << 'L';
    return path(id + 1, dif - 1);
  } else if (s[id] == 'D') {
    cout << 'D';
    return path(id + 1, dif);
  } else {
    if (solve1(id + 1, dif + 1)) {
      cout << 'W';
      return path(id + 1, dif + 1);
    } else if (solve1(id + 1, dif)) {
      cout << 'D';
      return path(id + 1, dif);
    } else {
      cout << 'L';
      return path(id + 1, dif - 1);
    }
  }
}
void solve() {
  cin >> n >> k;
  cin >> s;
  memset(dp, -1, sizeof(dp));
  long long int ans = solve1(0, 0);
  if (ans) {
    path(0, 0);
  } else {
    cout << "NO";
  }
}
int main() {
  long long int t = 1;
  while (t--) {
    solve();
  }
}
