#include <bits/stdc++.h>
#pragma GCC optimize(3, "Ofast", "inline")
using namespace std;
const int maxn = 5e5 + 10;
const int maxm = 5e5 + 10;
const long long INF = 1e18 + 10;
const long long mod = 1e9 + 7;
const double pi = acos(-1.0);
const double eps = 1e-8;
int dir[4][2] = {{-1, 0}, {0, 1}, {1, 0}, {0, -1}};
int t;
char s[maxn];
int x;
void solve() {
  int f = 1;
  char ans[maxn];
  int len = strlen(s);
  for (int i = 0; i < len; i++) ans[i] = '1';
  for (int i = 0; i < len; i++) {
    if (s[i] == '0') {
      if (i >= x) ans[i - x] = '0';
      if (i + x < len) ans[i + x] = '0';
    }
  }
  for (int i = 0; i < len; i++) {
    int f1 = 0;
    int f2 = 0;
    if (s[i] == '1') {
      if (i >= x) f1 = (ans[i - x] == '1');
      if (i + x < len) f2 = (ans[i + x] == '1');
    }
    if (s[i] == '0') f1 = 1;
    f = (f1 || f2);
    if (!f) break;
  }
  if (!f)
    puts("-1");
  else {
    for (int i = 0; i < len; i++) cout << ans[i];
    cout << endl;
  }
}
int main() {
  cin >> t;
  while (t--) {
    cin >> s >> x;
    solve();
  }
  return 0;
}
