#include <bits/stdc++.h>
using namespace std;
string data;
bool pos[1001][2001];
int n, k;
int score(char x) {
  if (x == 'D') return 0;
  if (x == 'W') return 1;
  return -1;
}
int main() {
  cin >> n >> k;
  cin >> data;
  int l = 0, r = 0;
  pos[0][k] = true;
  for (int i = 1; i < n; i++) {
    char x = data[i - 1];
    if (x == 'W') {
      l = l + 1;
      r = r + 1;
    } else if (x == 'L') {
      l = l - 1;
      r = r - 1;
    } else if (x == '?') {
      l = max(l - 1, -k + 1);
      r = min(r + 1, k - 1);
    }
    if (r <= -k || l >= k) {
      printf("NO\n");
      return 0;
    }
    l = max(l, -k + 1);
    r = min(r, k - 1);
    for (int j = l; j <= r; j++) {
      pos[i][j + k] = true;
    }
  }
  if (data[n - 1] == 'W') {
    l++;
    r++;
  } else if (data[n - 1] == 'L') {
    r--;
    l--;
  } else if (data[n - 1] == '?') {
    r++;
    l--;
  }
  for (int j = l; j <= r; j++) {
    pos[n][j + k] = true;
  }
  if (pos[n][k + k] == false && pos[n][k - k] == false) {
    printf("NO\n");
    return 0;
  }
  int kk = pos[n][0] ? -k : k;
  for (int i = n; i >= 1; i--) {
    if (data[i - 1] == 'W') {
      kk--;
    } else if (data[i - 1] == 'L') {
      kk++;
    } else if (data[i - 1] == '?') {
      if (pos[i - 1][kk + k]) {
        data[i - 1] = 'D';
      } else if (pos[i - 1][kk + k + 1]) {
        data[i - 1] = 'L';
        kk++;
      } else {
        data[i - 1] = 'W';
        kk--;
      }
    }
  }
  cout << data << endl;
}
