#include <bits/stdc++.h>
using namespace std;
const int N = 1010;
int n, k, f[N][N][2], p[N][N][2];
char a[N];
int fl(int x) {
  if (x < 0) {
    return 1;
  }
  return 0;
}
int main() {
  int i, j;
  scanf("%d %d\n", &n, &k);
  for (i = 1; i <= n; i++) {
    scanf("%c", &a[i]);
  }
  f[0][0][0] = 1;
  for (i = 1; i <= n; i++) {
    for (j = -k; j <= k; j++) {
      int cfl = fl(j);
      f[i][abs(j)][cfl] = 0;
      if (a[i] == '?') {
        if ((abs(j - 1) <= k) && (f[i - 1][abs(j - 1)][fl(j - 1)]) &&
            (j - 1 != -k)) {
          p[i][abs(j)][cfl] = -1;
          f[i][abs(j)][cfl] = 1;
        }
        if ((abs(j + 1) <= k) && (f[i - 1][abs(j + 1)][fl(j + 1)]) &&
            (j + 1 != k)) {
          p[i][abs(j)][cfl] = 1;
          f[i][abs(j)][cfl] = 1;
        }
        if ((abs(j) != k) && (f[i - 1][abs(j)][cfl])) {
          f[i][abs(j)][cfl] = 1;
          p[i][abs(j)][cfl] = 0;
        }
      } else {
        if (a[i] == 'D') {
          if (abs(j) != k) {
            f[i][abs(j)][cfl] = f[i - 1][abs(j)][cfl];
          }
        } else if (a[i] == 'L') {
          if (abs(j + 1) != k) {
            f[i][abs(j)][cfl] = f[i - 1][abs(j + 1)][fl(j + 1)];
          }
        } else {
          if (abs(j - 1) != k) {
            f[i][abs(j)][cfl] = f[i - 1][abs(j - 1)][fl(j - 1)];
          }
        }
      }
    }
  }
  i = n;
  if (f[n][k][0]) {
    j = k;
  } else if (f[n][k][1]) {
    j = -k;
  } else {
    puts("NO");
    return 0;
  }
  for (; i >= 1; i--) {
    if ((a[i] == 'L') || ((a[i] == '?') && (p[i][abs(j)][fl(j)] == 1))) {
      a[i] = 'L';
      j++;
    }
    if ((a[i] == 'W') || ((a[i] == '?') && (p[i][abs(j)][fl(j)] == -1))) {
      a[i] = 'W';
      j--;
    }
    if ((a[i] == 'D') || ((a[i] == '?') && (!p[i][abs(j)][fl(j)]))) {
      a[i] = 'D';
    }
  }
  puts(a + 1);
  return 0;
}
