#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e6 + 100;
int arr[maxn];
void solve() {
  int n, k;
  scanf("%d", &n);
  scanf("%d", &k);
  string s;
  cin >> s;
  int flag = 1;
  for (int i = 0; i <= (int)s.size() - 1; i++) {
    if ((i + k) >= (int)s.size()) break;
    if (s[i] == '.' or s[i + k] == '.') {
      flag = 0;
      break;
    }
    if (s[i] != s[i + k]) {
      flag = 0;
      break;
    }
  }
  if (flag) {
    puts("No");
    return;
  }
  for (int i = 0; i <= (int)s.size() - 1; i++) {
    if (s[i] == '.') {
      if (i < k) {
        if ((i + k) >= (int)s.size()) {
          s[i] = '0';
          continue;
        }
        if (s[i + k] == '.') {
          s[i] = '0';
        } else if (s[i + k] == '0')
          s[i] = '1';
        else {
          s[i] = '0';
        }
      } else {
        if (s[i - k] == '0') {
          s[i] = '1';
        } else {
          s[i] = '0';
        }
      }
    }
  }
  cout << s << endl;
}
int main() {
  int t = 1;
  while (t--) {
    solve();
  }
  return 0;
}
