#include <bits/stdc++.h>
using namespace std;
long long p, f, s, a, sw, aw, ps = 0, pa = 0, fs = 0, fa = 0;
int main() {
  int t;
  cin >> t;
  while (t--) {
    string a;
    cin >> a;
    int n = a.length(), x;
    cin >> x;
    vector<int> s(n + 1, -1);
    for (int i = 1; i <= n; i++) s[i] = a[i - 1] - '0';
    vector<int> w(n + 1, -1);
    for (int i = 1; i <= n; i++) {
      if (s[i] == 0) {
        if (i + x <= n) {
          w[i + x] = 0;
        }
        if (i > x) {
          w[i - x] = 0;
        }
        if (i + x > n && i <= x) {
          w[i] = 0;
        }
      }
    }
    bool poss = true;
    for (int i = 1; i <= n; i++) {
      if (s[i] == 1) {
        if (i + x > n && i <= x) {
          poss = false;
          break;
        }
        if (i + x <= n && i <= x) {
          if (w[i + x] == 0) {
            poss = false;
            break;
          } else {
            w[i + x] = 1;
          }
        } else if (i + x > n && i > x) {
          if (w[i - x] == 0) {
            poss = false;
            break;
          } else {
            w[i - x] = 1;
          }
        } else if (i + x <= n && i > x) {
          if (w[i + x] == 0 && w[i - x] == 0) {
            poss = false;
            break;
          } else {
            if (w[i + x] == -1) w[i + x] = 1;
            if (w[i - x] == -1) w[i - x] = 1;
          }
        }
      }
    }
    if (poss == false) {
      cout << -1 << "\n";
      continue;
    }
    for (int i = 1; i <= n; i++) {
      cout << w[i];
    }
    cout << "\n";
  }
  return 0;
}
