function main(input) {
  const inputs = input.trim().split('\n');
  var T = parseInt(inputs[0], 10);
  var zero60 = '0'.repeat(60);

  var test60 = [];
  for (var i = 0; i < 60; i++) {
    test60.push(0);
  }

  for (var i = 0; i < T * 3; i += 3) {
    test(
      parseInt(inputs[i + 1]),
      inputs[i + 2].split(' ').map(n => (zero60 + parseInt(n, 10).toString(2)).slice(-60)),
      inputs[i + 3],
      test60.concat());
  }
}

function test(N, A, S, testArr) {
  var sArr = S.split('');
  var checkArr = [];
  var tempA = [];
  for (var n = 0; n < N; n++) {
    tempA = A[n].split('').map(v => parseInt(v, 10));
    for (var i = 0; i < 60; i++) {
      switch (testArr[i]) {
        case 1:
          testArr[i] += sArr[n] == '0' ? -1 * tempA[i] : 0;
          break;
        case -1:
          testArr[i] += sArr[n] == '0' ? 0 : tempA[i];
          break;
        default:
          testArr[i] += sArr[n] == '0' ? -1 * tempA[i] : tempA[i];
          break;
      }
    }
  }
  for (var i = 0; i < 60; i++) {
    if (testArr[i] > 0) {
      console.log('1');
      return;
    }
  }
  console.log('0');
}

main(require('fs').readFileSync('/dev/stdin', 'utf8'));