func_code_string: #include <bits/stdc++.h>   using namespace std;   bool exceed(long long x, long long y, long long m) { return x >= m / y + 1; }   long long n, k;   string s;   long long dp[1005][2005];   int zero = 1002;   int main(void) {     ios::sync_with_stdio(0);     cin >> n >> k >> s;     s =  #  + s;     for (long long(i) = (0); (i) <= (n); (i)++)       for (long long(j) = (-k); (j) <= (k); (j)++) dp[i][zero + j] = -1e18;     dp[0][zero + 0] = 0;     for (long long(i) = (0); (i) <= (n - 1); (i)++) {       for (long long(j) = (-k); (j) <= (k); (j)++) {         for (long long(l) = (-1); (l) <= (1); (l)++) {           if (dp[i][zero + j] < -1e18 / 2) continue;           if (s[i + 1] !=  ? ) {             if (s[i + 1] !=  W  && l == 1) continue;             if (s[i + 1] !=  L  && l == -1) continue;             if (s[i + 1] !=  D  && l == 0) continue;           }           long long nj = j + l;           if (abs(nj) > k) continue;           if (i + 1 != n && abs(nj) == k) continue;           dp[i + 1][zero + nj] = j;         }       }     }     long long p = -1e18;     if (dp[n][zero + k] > -1e18 / 2) p = k;     if (dp[n][zero - k] > -1e18 / 2) p = -k;     if (p < -1e18 / 2) {       cout <<  NO  << endl;       return 0;     }     for (int i = n; i >= 1; i--) {       if (dp[i][zero + p] == p) s[i] =  D ;       if (dp[i][zero + p] < p) s[i] =  W ;       if (dp[i][zero + p] > p) s[i] =  L ;       p = dp[i][zero + p];     }     cout << s.substr(1) << endl;     return 0;   }   