#include <bits/stdc++.h>
#pragma comment(linker, "/stack:640000000")
using namespace std;
const double EPS = 1e-9;
const int INF = 0x7f7f7f7f;
const double PI = acos(-1.0);
template <class T>
inline T gcd(T a, T b) {
  return (b) == 0 ? (a) : gcd((b), ((a) % (b)));
}
template <class T>
inline T lcm(T a, T b) {
  return ((a) / gcd((a), (b)) * (b));
}
template <typename T>
string NumberToString(T Number) {
  ostringstream second;
  second << Number;
  return second.str();
}
struct debugger {
  template <typename T>
  debugger& operator,(const T& v) {
    cerr << v << " ";
    return *this;
  }
} dbg;
int t, n, m;
int dp[1005][1005][5];
string s;
int call(int pos, int win, int loss) {
  int dif = abs(win - loss);
  int flag = 0;
  if (win > loss) flag = 1;
  int& ret = dp[pos][dif][flag];
  if (pos == s.size()) {
    if (dif == m) return ret = 1;
    return ret = 0;
  }
  if (ret != -1) return ret;
  if (dif == m) return ret = 0;
  if (s[pos] == 'L') {
    return ret = call(pos + 1, win, loss + 1);
  }
  if (s[pos] == 'W') {
    return ret = call(pos + 1, win + 1, loss);
  }
  if (s[pos] == 'D') {
    return ret = call(pos + 1, win, loss);
  }
  ret = 0;
  ret |= call(pos + 1, win, loss + 1);
  ret |= call(pos + 1, win + 1, loss);
  ret |= call(pos + 1, win, loss);
  return ret;
}
void print(int pos, int win, int loss) {
  int dif = abs(win - loss);
  int flag = 0;
  if (win > loss) flag = 1;
  if (pos == s.size()) {
    return;
  }
  if (s[pos] == 'L') {
    putchar(s[pos]);
    print(pos + 1, win, loss + 1);
    return;
  }
  if (s[pos] == 'W') {
    putchar(s[pos]);
    print(pos + 1, win + 1, loss);
    return;
  }
  if (s[pos] == 'D') {
    putchar(s[pos]);
    print(pos + 1, win, loss);
    return;
  }
  if (call(pos + 1, win, loss + 1)) {
    putchar('L');
    print(pos + 1, win, loss + 1);
  } else if (call(pos + 1, win + 1, loss)) {
    putchar('W');
    print(pos + 1, win + 1, loss);
  } else {
    putchar('D');
    print(pos + 1, win, loss);
  }
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  while (cin >> n >> m) {
    memset(dp, -1, sizeof(dp));
    cin >> s;
    int ans = call(0, 0, 0);
    if (!ans) {
      puts("NO");
    } else {
      print(0, 0, 0);
      puts("");
    }
  }
  return 0;
}
