#include <bits/stdc++.h>
using namespace std;
int n, k;
bool tryPlusMinus(vector<pair<int, int> > ploho, string& s) {
  int l = 0;
  int curQuests = 0;
  int sumFromQuests = 0;
  stack<int> q;
  int cur = 0;
  for (int i = 0; i < s.size(); ++i) {
    if (s[i] == 'W')
      ++cur;
    else if (s[i] == 'L')
      --cur;
    if (s[l] == '?') {
      ++curQuests;
      q.push(l);
    }
    ++l;
    int nextSum = sumFromQuests + cur;
    if (nextSum >= k) {
      if (q.size() > 0) {
        int p = q.top();
        q.pop();
        s[p] = 'L';
        sumFromQuests--;
      } else
        return false;
    } else if (nextSum <= -k) {
      if (q.size() > 0) {
        int p = q.top();
        q.pop();
        s[p] = 'W';
        sumFromQuests++;
      } else
        return false;
    }
  }
  return true;
}
bool isOk(string s) {
  int cur = 0;
  for (int i = 0; i < s.size(); ++i) {
    if (s[i] == 'L')
      cur--;
    else if (s[i] == 'W')
      cur++;
    else if (s[i] == '?')
      return false;
    if ((cur >= k || cur <= -k) && i + 1 != s.size()) return false;
  }
  return (cur == k || cur == -k);
}
void tryMinus(string s) {
  int cur = 0;
  stack<int> st;
  for (int i = 0; i < s.size(); ++i) {
    if (s[i] == 'L')
      cur--;
    else if (s[i] == 'W')
      cur++;
    else if (s[i] == '?')
      st.push(i);
  }
  while (cur != -k) {
    if (st.size() > 0) {
      s[st.top()] = 'L';
      st.pop();
      cur--;
    } else
      return;
  }
  for (int i = 0; i < s.size(); ++i)
    if (s[i] == '?') s[i] = 'D';
  if (isOk(s)) {
    cout << s;
    exit(0);
  }
}
void tryPlus(string s) {
  int cur = 0;
  stack<int> st;
  for (int i = 0; i < s.size(); ++i) {
    if (s[i] == 'L')
      cur--;
    else if (s[i] == 'W')
      cur++;
    else if (s[i] == '?')
      st.push(i);
  }
  while (cur != k) {
    if (st.size() > 0) {
      s[st.top()] = 'W';
      st.pop();
      ++cur;
    } else
      return;
  }
  for (int i = 0; i < s.size(); ++i)
    if (s[i] == '?') s[i] = 'D';
  if (isOk(s)) {
    cout << s;
    exit(0);
  }
}
int main() {
  cin >> n >> k;
  string s;
  cin >> s;
  int cur = 0;
  vector<int> quests;
  vector<pair<int, int> > ploho;
  vector<int> sum;
  for (int i = 0; i < s.size(); ++i) {
    if (s[i] == 'L')
      --cur;
    else if (s[i] == 'W')
      ++cur;
    sum.push_back(cur);
    if ((cur >= k || cur <= -k) && i != s.size() - 1)
      ploho.push_back(make_pair(cur, i));
  }
  if (!tryPlusMinus(ploho, s)) return cout << "NO\n", 0;
  cur = 0;
  for (int i = 0; i < s.size(); ++i) {
    if (s[i] == 'L')
      --cur;
    else if (s[i] == 'R')
      ++cur;
  }
  tryPlus(s);
  tryMinus(s);
  cout << "NO\n";
}
